diff options
Diffstat (limited to 'llvm/tools/llvm-objdump')
-rw-r--r-- | llvm/tools/llvm-objdump/MachODump.cpp | 24 | ||||
-rw-r--r-- | llvm/tools/llvm-objdump/llvm-objdump.cpp | 30 | ||||
-rw-r--r-- | llvm/tools/llvm-objdump/llvm-objdump.h | 9 |
3 files changed, 34 insertions, 29 deletions
diff --git a/llvm/tools/llvm-objdump/MachODump.cpp b/llvm/tools/llvm-objdump/MachODump.cpp index 0a83843b3e0..34ad57167d0 100644 --- a/llvm/tools/llvm-objdump/MachODump.cpp +++ b/llvm/tools/llvm-objdump/MachODump.cpp @@ -318,20 +318,16 @@ static void ProcessMachO(StringRef Filename, MachOObjectFile *MachOOF, if (Disassemble) DisassembleMachO(Filename, MachOOF); - // TODO: These should/could be printed in Darwin's otool(1) or nm(1) style - // for -macho. Or just used a new option that maps to the otool(1) - // option like -r, -l, etc. Or just the normal llvm-objdump option - // but now for this slice so that the -arch options can be used. - // if (Relocations) - // PrintRelocations(MachOOF); - // if (SectionHeaders) - // PrintSectionHeaders(MachOOF); - // if (SectionContents) - // PrintSectionContents(MachOOF); - // if (SymbolTable) - // PrintSymbolTable(MachOOF); - // if (UnwindInfo) - // PrintUnwindInfo(MachOOF); + if (Relocations) + PrintRelocations(MachOOF); + if (SectionHeaders) + PrintSectionHeaders(MachOOF); + if (SectionContents) + PrintSectionContents(MachOOF); + if (SymbolTable) + PrintSymbolTable(MachOOF); + if (UnwindInfo) + printMachOUnwindInfo(MachOOF); if (PrivateHeaders) printMachOFileHeader(MachOOF); if (ExportsTrie) diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp index 6334859b257..76c8af42056 100644 --- a/llvm/tools/llvm-objdump/llvm-objdump.cpp +++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp @@ -68,14 +68,14 @@ static cl::alias Disassembled("d", cl::desc("Alias for --disassemble"), cl::aliasopt(Disassemble)); -static cl::opt<bool> -Relocations("r", cl::desc("Display the relocation entries in the file")); +cl::opt<bool> +llvm::Relocations("r", cl::desc("Display the relocation entries in the file")); -static cl::opt<bool> -SectionContents("s", cl::desc("Display the content of each section")); +cl::opt<bool> +llvm::SectionContents("s", cl::desc("Display the content of each section")); -static cl::opt<bool> -SymbolTable("t", cl::desc("Display the symbol table")); +cl::opt<bool> +llvm::SymbolTable("t", cl::desc("Display the symbol table")); cl::opt<bool> llvm::ExportsTrie("exports-trie", cl::desc("Display mach-o exported symbols")); @@ -111,9 +111,9 @@ cl::opt<std::string> llvm::ArchName("arch-name", cl::desc("Target arch to disassemble for, " "see -version for available targets")); -static cl::opt<bool> -SectionHeaders("section-headers", cl::desc("Display summaries of the headers " - "for each section.")); +cl::opt<bool> +llvm::SectionHeaders("section-headers", cl::desc("Display summaries of the " + "headers for each section.")); static cl::alias SectionHeadersShort("headers", cl::desc("Alias for --section-headers"), cl::aliasopt(SectionHeaders)); @@ -132,8 +132,8 @@ llvm::NoShowRawInsn("no-show-raw-insn", cl::desc("When disassembling " "instructions, do not print " "the instruction bytes.")); -static cl::opt<bool> -UnwindInfo("unwind-info", cl::desc("Display unwind information")); +cl::opt<bool> +llvm::UnwindInfo("unwind-info", cl::desc("Display unwind information")); static cl::alias UnwindInfoShort("u", cl::desc("Alias for --unwind-info"), @@ -453,7 +453,7 @@ static void DisassembleObject(const ObjectFile *Obj, bool InlineRelocs) { } } -static void PrintRelocations(const ObjectFile *Obj) { +void llvm::PrintRelocations(const ObjectFile *Obj) { StringRef Fmt = Obj->getBytesInAddress() > 4 ? "%016" PRIx64 : "%08" PRIx64; // Regular objdump doesn't print relocations in non-relocatable object @@ -490,7 +490,7 @@ static void PrintRelocations(const ObjectFile *Obj) { } } -static void PrintSectionHeaders(const ObjectFile *Obj) { +void llvm::PrintSectionHeaders(const ObjectFile *Obj) { outs() << "Sections:\n" "Idx Name Size Address Type\n"; unsigned i = 0; @@ -511,7 +511,7 @@ static void PrintSectionHeaders(const ObjectFile *Obj) { } } -static void PrintSectionContents(const ObjectFile *Obj) { +void llvm::PrintSectionContents(const ObjectFile *Obj) { std::error_code EC; for (const SectionRef &Section : Obj->sections()) { StringRef Name; @@ -614,7 +614,7 @@ static void PrintCOFFSymbolTable(const COFFObjectFile *coff) { } } -static void PrintSymbolTable(const ObjectFile *o) { +void llvm::PrintSymbolTable(const ObjectFile *o) { outs() << "SYMBOL TABLE:\n"; if (const COFFObjectFile *coff = dyn_cast<const COFFObjectFile>(o)) { diff --git a/llvm/tools/llvm-objdump/llvm-objdump.h b/llvm/tools/llvm-objdump/llvm-objdump.h index 491a819132e..a0e0d5a6a6c 100644 --- a/llvm/tools/llvm-objdump/llvm-objdump.h +++ b/llvm/tools/llvm-objdump/llvm-objdump.h @@ -36,6 +36,11 @@ extern cl::opt<bool> LazyBind; extern cl::opt<bool> WeakBind; extern cl::opt<bool> UniversalHeaders; extern cl::opt<bool> ArchiveHeaders; +extern cl::opt<bool> Relocations; +extern cl::opt<bool> SectionHeaders; +extern cl::opt<bool> SectionContents; +extern cl::opt<bool> SymbolTable; +extern cl::opt<bool> UnwindInfo; // Various helper functions. bool error(std::error_code ec); @@ -57,6 +62,10 @@ void printRebaseTable(const object::ObjectFile *o); void printBindTable(const object::ObjectFile *o); void printLazyBindTable(const object::ObjectFile *o); void printWeakBindTable(const object::ObjectFile *o); +void PrintRelocations(const object::ObjectFile *o); +void PrintSectionHeaders(const object::ObjectFile *o); +void PrintSectionContents(const object::ObjectFile *o); +void PrintSymbolTable(const object::ObjectFile *o); } // end namespace llvm |