From 8972e48bc8431534ed9be2a72423740a624825e9 Mon Sep 17 00:00:00 2001 From: Kevin Enderby Date: Thu, 30 Apr 2015 20:30:42 +0000 Subject: For llvm-objdump, with the -archive-headers and -macho options, use the -non-verbose option to print the archive headers using raw numeric values. Also add the -archive-member-offsets for use with these to also trigger printing of the offset of the archive member from the start of the archive. llvm-svn: 236252 --- llvm/tools/llvm-objdump/MachODump.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 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 4fa6495f87f..b173ce92a0a 100644 --- a/llvm/tools/llvm-objdump/MachODump.cpp +++ b/llvm/tools/llvm-objdump/MachODump.cpp @@ -80,6 +80,12 @@ cl::opt cl::desc("Print archive headers for Mach-O archives " "(requires -macho)")); +cl::opt + ArchiveMemberOffsets("archive-member-offsets", + cl::desc("Print the offset to each archive member for " + "Mach-O archives (requires -macho and " + "-archive-headers)")); + cl::opt llvm::IndirectSymbols("indirect-symbols", cl::desc("Print indirect symbol table for Mach-O " @@ -1559,7 +1565,7 @@ void llvm::ParseInputMachO(StringRef Filename) { if (Archive *A = dyn_cast(&Bin)) { outs() << "Archive : " << Filename << "\n"; if (ArchiveHeaders) - printArchiveHeaders(A, true, false); + printArchiveHeaders(A, !NonVerbose, ArchiveMemberOffsets); for (Archive::child_iterator I = A->child_begin(), E = A->child_end(); I != E; ++I) { ErrorOr> ChildOrErr = I->getAsBinary(); @@ -1606,7 +1612,7 @@ void llvm::ParseInputMachO(StringRef Filename) { outs() << " (architecture " << ArchitectureName << ")"; outs() << "\n"; if (ArchiveHeaders) - printArchiveHeaders(A.get(), true, false); + printArchiveHeaders(A.get(), !NonVerbose, ArchiveMemberOffsets); for (Archive::child_iterator AI = A->child_begin(), AE = A->child_end(); AI != AE; ++AI) { @@ -1648,7 +1654,7 @@ void llvm::ParseInputMachO(StringRef Filename) { std::unique_ptr &A = *AOrErr; outs() << "Archive : " << Filename << "\n"; if (ArchiveHeaders) - printArchiveHeaders(A.get(), true, false); + printArchiveHeaders(A.get(), !NonVerbose, ArchiveMemberOffsets); for (Archive::child_iterator AI = A->child_begin(), AE = A->child_end(); AI != AE; ++AI) { @@ -1685,7 +1691,7 @@ void llvm::ParseInputMachO(StringRef Filename) { outs() << " (architecture " << ArchitectureName << ")"; outs() << "\n"; if (ArchiveHeaders) - printArchiveHeaders(A.get(), true, false); + printArchiveHeaders(A.get(), !NonVerbose, ArchiveMemberOffsets); for (Archive::child_iterator AI = A->child_begin(), AE = A->child_end(); AI != AE; ++AI) { ErrorOr> ChildOrErr = AI->getAsBinary(); -- cgit v1.2.3