From 94c36fa15ba32836fda6b7075a4625defba2d327 Mon Sep 17 00:00:00 2001 From: Serge Guelton Date: Wed, 22 May 2019 06:30:46 +0000 Subject: Properly categorize llvm-objdump options Filters out noise, and distinguish Mach-O related options from others. Differential Revision: https://reviews.llvm.org/D62195 llvm-svn: 361351 --- llvm/tools/llvm-objdump/MachODump.cpp | 70 +++++++++++++++++++++++------------ 1 file changed, 47 insertions(+), 23 deletions(-) (limited to 'llvm/tools/llvm-objdump/MachODump.cpp') diff --git a/llvm/tools/llvm-objdump/MachODump.cpp b/llvm/tools/llvm-objdump/MachODump.cpp index 6bb30c551da..ea92ef9268a 100644 --- a/llvm/tools/llvm-objdump/MachODump.cpp +++ b/llvm/tools/llvm-objdump/MachODump.cpp @@ -59,6 +59,8 @@ using namespace llvm::object; namespace llvm { +cl::OptionCategory MachOCat("llvm-objdump MachO Specific Options"); + extern cl::opt ArchiveHeaders; extern cl::opt Disassemble; extern cl::opt DisassembleAll; @@ -80,91 +82,113 @@ extern cl::opt UnwindInfo; cl::opt FirstPrivateHeader("private-header", cl::desc("Display only the first format specific file " - "header")); + "header"), + cl::cat(MachOCat)); cl::opt ExportsTrie("exports-trie", - cl::desc("Display mach-o exported symbols")); + cl::desc("Display mach-o exported symbols"), + cl::cat(MachOCat)); -cl::opt Rebase("rebase", cl::desc("Display mach-o rebasing info")); +cl::opt Rebase("rebase", cl::desc("Display mach-o rebasing info"), + cl::cat(MachOCat)); -cl::opt Bind("bind", cl::desc("Display mach-o binding info")); +cl::opt Bind("bind", cl::desc("Display mach-o binding info"), + cl::cat(MachOCat)); cl::opt LazyBind("lazy-bind", - cl::desc("Display mach-o lazy binding info")); + cl::desc("Display mach-o lazy binding info"), + cl::cat(MachOCat)); cl::opt WeakBind("weak-bind", - cl::desc("Display mach-o weak binding info")); + cl::desc("Display mach-o weak binding info"), + cl::cat(MachOCat)); static cl::opt UseDbg("g", cl::Grouping, - cl::desc("Print line information from debug info if available")); + cl::desc("Print line information from debug info if available"), + cl::cat(MachOCat)); static cl::opt DSYMFile("dsym", - cl::desc("Use .dSYM file for debug info")); + cl::desc("Use .dSYM file for debug info"), + cl::cat(MachOCat)); static cl::opt FullLeadingAddr("full-leading-addr", - cl::desc("Print full leading address")); + cl::desc("Print full leading address"), + cl::cat(MachOCat)); static cl::opt NoLeadingHeaders("no-leading-headers", - cl::desc("Print no leading headers")); + cl::desc("Print no leading headers"), + cl::cat(MachOCat)); cl::opt UniversalHeaders("universal-headers", cl::desc("Print Mach-O universal headers " - "(requires -macho)")); + "(requires -macho)"), + cl::cat(MachOCat)); cl::opt ArchiveMemberOffsets("archive-member-offsets", cl::desc("Print the offset to each archive member for " "Mach-O archives (requires -macho and " - "-archive-headers)")); + "-archive-headers)"), + cl::cat(MachOCat)); cl::opt IndirectSymbols("indirect-symbols", cl::desc("Print indirect symbol table for Mach-O " - "objects (requires -macho)")); + "objects (requires -macho)"), + cl::cat(MachOCat)); cl::opt DataInCode("data-in-code", cl::desc("Print the data in code table for Mach-O objects " - "(requires -macho)")); + "(requires -macho)"), + cl::cat(MachOCat)); cl::opt LinkOptHints("link-opt-hints", cl::desc("Print the linker optimization hints for " - "Mach-O objects (requires -macho)")); + "Mach-O objects (requires -macho)"), + cl::cat(MachOCat)); cl::opt InfoPlist("info-plist", cl::desc("Print the info plist section as strings for " - "Mach-O objects (requires -macho)")); + "Mach-O objects (requires -macho)"), + cl::cat(MachOCat)); cl::opt DylibsUsed("dylibs-used", cl::desc("Print the shared libraries used for linked " - "Mach-O files (requires -macho)")); + "Mach-O files (requires -macho)"), + cl::cat(MachOCat)); cl::opt DylibId("dylib-id", cl::desc("Print the shared library's id for the dylib Mach-O " - "file (requires -macho)")); + "file (requires -macho)"), + cl::cat(MachOCat)); cl::opt NonVerbose("non-verbose", cl::desc("Print the info for Mach-O objects in " - "non-verbose or numeric form (requires -macho)")); + "non-verbose or numeric form (requires -macho)"), + cl::cat(MachOCat)); cl::opt ObjcMetaData("objc-meta-data", cl::desc("Print the Objective-C runtime meta data for " - "Mach-O files (requires -macho)")); + "Mach-O files (requires -macho)"), + cl::cat(MachOCat)); cl::opt DisSymName( "dis-symname", - cl::desc("disassemble just this symbol's instructions (requires -macho)")); + cl::desc("disassemble just this symbol's instructions (requires -macho)"), + cl::cat(MachOCat)); static cl::opt NoSymbolicOperands( "no-symbolic-operands", - cl::desc("do not symbolic operands when disassembling (requires -macho)")); + cl::desc("do not symbolic operands when disassembling (requires -macho)"), + cl::cat(MachOCat)); static cl::list ArchFlags("arch", cl::desc("architecture(s) from a Mach-O file to dump"), - cl::ZeroOrMore); + cl::ZeroOrMore, cl::cat(MachOCat)); bool ArchAll = false; -- cgit v1.2.3