Omit "Contents of" headers when -no-leading-headers is specified.
authorMichael Trent <mtrent@apple.com>
Wed, 29 Jan 2020 19:18:19 +0000 (11:18 -0800)
committerMichael Trent <mtrent@apple.com>
Mon, 3 Feb 2020 21:33:50 +0000 (13:33 -0800)
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

llvm/test/tools/llvm-objdump/X86/macho-cstring-dump.test
llvm/tools/llvm-objdump/MachODump.cpp

index ae47207..9ced9c6 100644 (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
index 354aa1b..fe46133 100644 (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) ||