Omit "Contents of" headers when -no-leading-headers is specified.

Summary:
llvm-objdump -macho will no longer print "Contents of" headers when
disassembling section contents when -no-leading-headers is specified.
For historical reasons, this flag is independent of -no-leading-addr.

Reviewers: ab, pete, jhenderson

Reviewed By: jhenderson

Subscribers: rupprecht, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73574
This commit is contained in:
Michael Trent 2020-01-29 11:18:19 -08:00
parent 3b4d24d770
commit 9944ef4269
2 changed files with 9 additions and 3 deletions

View File

@ -1,5 +1,6 @@
RUN: llvm-objdump -m -section __TEXT,__cstring %p/Inputs/hello.obj.macho-x86_64 2>&1 | FileCheck %s --implicit-check-not="warning:"
RUN: llvm-objdump -m -section __TEXT,__cstring -no-leading-addr %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s -check-prefix=NO_ADDR --implicit-check-not="warning:"
RUN: llvm-objdump -m -section __TEXT,__cstring -no-leading-headers %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s -check-prefix=NO_HEADERS --implicit-check-not="warning:"
RUN: llvm-objdump -m -section __TEXT,__cstring -non-verbose %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s -check-prefix=NON_VERBOSE --implicit-check-not="warning:"
CHECK: Contents of (__TEXT,__cstring) section
@ -9,5 +10,9 @@ NO_ADDR: Contents of (__TEXT,__cstring) section
NO_ADDR: Hello world\n
NO_ADDR-NOT: 000000000000003b
NO_HEADERS-NOT: Inputs/hello.obj.macho-x86_64:
NO_HEADERS-NOT: Contents of (__TEXT,__cstring) section
NO_HEADERS: 000000000000003b Hello world\n
NON_VERBOSE: Contents of (__TEXT,__cstring) section
NON_VERBOSE: 000000000000003b 48 65 6c 6c 6f 20 77 6f 72 6c 64 0a 00
NON_VERBOSE: 000000000000003b 48 65 6c 6c 6f 20 77 6f 72 6c 64 0a 00

View File

@ -1782,8 +1782,9 @@ static void DumpSectionContents(StringRef Filename, MachOObjectFile *O,
uint32_t sect_size = BytesStr.size();
uint64_t sect_addr = Section.getAddress();
outs() << "Contents of (" << SegName << "," << SectName
<< ") section\n";
if (!NoLeadingHeaders)
outs() << "Contents of (" << SegName << "," << SectName
<< ") section\n";
if (verbose) {
if ((section_flags & MachO::S_ATTR_PURE_INSTRUCTIONS) ||