[llvm] r374123 - [dsymutil] Improve verbose output (NFC)

Jonas Devlieghere via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 8 15:03:14 PDT 2019


Author: jdevlieghere
Date: Tue Oct  8 15:03:13 2019
New Revision: 374123

URL: http://llvm.org/viewvc/llvm-project?rev=374123&view=rev
Log:
[dsymutil] Improve verbose output (NFC)

The verbose output for finding relocations assumed that we'd always dump
the DIE after (which starts with a newline) and therefore didn't include
one itself. However, this isn't always true, leading to garbled output.

This patch adds a newline to the verbose output and adds a line that
says that the DIE is being kept (which isn't obvious otherwise). It also
adds a 0x prefix to the relocations.

Modified:
    llvm/trunk/test/tools/dsymutil/basic-linking.test
    llvm/trunk/tools/dsymutil/DwarfLinker.cpp

Modified: llvm/trunk/test/tools/dsymutil/basic-linking.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/dsymutil/basic-linking.test?rev=374123&r1=374122&r2=374123&view=diff
==============================================================================
--- llvm/trunk/test/tools/dsymutil/basic-linking.test (original)
+++ llvm/trunk/test/tools/dsymutil/basic-linking.test Tue Oct  8 15:03:13 2019
@@ -25,36 +25,44 @@ CHECK-NOT: TAG
 CHECK: AT_name {{.*}}basic3.c
 
 CHECK-NOT: Found valid debug map entry
-CHECK: Found valid debug map entry: _main 	0000000000000000 => 0000000100000ea0
+CHECK: Found valid debug map entry: _main	0x0000000000000000 => 0x0000000100000ea0
+CHECK-NEXT: Keeping subprogram DIE:
 CHECK-NEXT: DW_TAG_subprogram
 CHECK-NEXT:   DW_AT_name{{.*}}"main"
 
-CHECK: Found valid debug map entry: _private_int 	0000000000000560 => 0000000100001008
+CHECK: Found valid debug map entry: _private_int 	0x0000000000000560 => 0x0000000100001008
+CHECK-NEXT: Keeping variable DIE:
 CHECK-NEXT: DW_TAG_variable
 CHECK-NEXT:   DW_AT_name {{.*}}"private_int"
 CHECK-NOT: Found valid debug map entry
-CHECK: Found valid debug map entry: _baz 	0000000000000310 => 0000000100001000
+CHECK: Found valid debug map entry: _baz	0x0000000000000310 => 0x0000000100001000
+CHECK-NEXT: Keeping variable DIE:
 CHECK-NEXT: DW_TAG_variable
 CHECK-NEXT:   DW_AT_name {{.*}}"baz"
 CHECK-NOT: Found valid debug map entry
-CHECK: Found valid debug map entry: _foo 	0000000000000020 => 0000000100000ed0
+CHECK: Found valid debug map entry: _foo	0x0000000000000020 => 0x0000000100000ed0
+CHECK-NEXT: Keeping subprogram DIE:
 CHECK-NEXT: DW_TAG_subprogram
 CHECK-NEXT:   DW_AT_name {{.*}}"foo"
 CHECK-NOT: Found valid debug map entry
-CHECK: Found valid debug map entry: _inc 	0000000000000070 => 0000000100000f20
+CHECK: Found valid debug map entry: _inc	0x0000000000000070 => 0x0000000100000f20
+CHECK-NEXT: Keeping subprogram DIE:
 CHECK-NEXT: DW_TAG_subprogram
 CHECK-NEXT:   DW_AT_name {{.*}}"inc"
 
 CHECK-NOT: Found valid debug map entry
-CHECK: Found valid debug map entry: _val 	ffffffffffffffff => 0000000100001004
+CHECK: Found valid debug map entry: _val	0xffffffffffffffff => 0x0000000100001004
+CHECK-NEXT: Keeping variable DIE:
 CHECK-NEXT: DW_TAG_variable
 CHECK-NEXT:   DW_AT_name {{.*}}"val"
 CHECK-NOT: Found valid debug map entry
-CHECK: Found valid debug map entry: _bar 	0000000000000020 => 0000000100000f40
+CHECK: Found valid debug map entry: _bar	0x0000000000000020 => 0x0000000100000f40
+CHECK-NEXT: Keeping subprogram DIE:
 CHECK-NEXT: DW_TAG_subprogram
 CHECK-NEXT:   DW_AT_name {{.*}}"bar"
 CHECK-NOT: Found valid debug map entry
-CHECK: Found valid debug map entry: _inc 	0000000000000070 => 0000000100000f90
+CHECK: Found valid debug map entry: _inc	0x0000000000000070 => 0x0000000100000f90
+CHECK-NEXT: Keeping subprogram DIE:
 CHECK-NEXT: DW_TAG_subprogram
 CHECK-NEXT:   DW_AT_name {{.*}}"inc")
 
@@ -75,27 +83,33 @@ CHECK-LTO-NOT: TAG
 CHECK-LTO: AT_name {{.*}}basic3.c
 
 CHECK-LTO-NOT: Found valid debug map entry
-CHECK-LTO: Found valid debug map entry: _main 	0000000000000000 => 0000000100000f40
+CHECK-LTO: Found valid debug map entry: _main	0x0000000000000000 => 0x0000000100000f40
+CHECK-LTO-NEXT: Keeping subprogram DIE:
 CHECK-LTO-NEXT: DW_TAG_subprogram
 CHECK-LTO-NEXT:   DW_AT_name {{.*}}"main"
 CHECK-LTO-NOT: Found valid debug map entry
-CHECK-LTO: Found valid debug map entry: _private_int 	00000000000008e8 => 0000000100001008
+CHECK-LTO: Found valid debug map entry: _private_int 	0x00000000000008e8 => 0x0000000100001008
+CHECK-LTO-NEXT: Keeping variable DIE:
 CHECK-LTO-NEXT: DW_TAG_variable
 CHECK-LTO-NEXT:   DW_AT_name {{.*}}"private_int"
 CHECK-LTO-NOT: Found valid debug map entry
-CHECK-LTO: Found valid debug map entry: _baz 	0000000000000658 => 0000000100001000
+CHECK-LTO: Found valid debug map entry: _baz	0x0000000000000658 => 0x0000000100001000
+CHECK-LTO-NEXT: Keeping variable DIE:
 CHECK-LTO-NEXT: DW_TAG_variable
 CHECK-LTO-NEXT:   DW_AT_name {{.*}} "baz"
 CHECK-LTO-NOT: Found valid debug map entry
-CHECK-LTO: Found valid debug map entry: _foo 	0000000000000010 => 0000000100000f50
+CHECK-LTO: Found valid debug map entry: _foo	0x0000000000000010 => 0x0000000100000f50
+CHECK-LTO-NEXT: Keeping subprogram DIE:
 CHECK-LTO-NEXT: DW_TAG_subprogram
 CHECK-LTO-NEXT:   DW_AT_name {{.*}}"foo"
 CHECK-LTO-NOT: Found valid debug map entry
-CHECK-LTO: Found valid debug map entry: _val 	00000000000008ec => 0000000100001004
+CHECK-LTO: Found valid debug map entry: _val	0x00000000000008ec => 0x0000000100001004
+CHECK-LTO-NEXT: Keeping variable DIE:
 CHECK-LTO-NEXT: DW_TAG_variable
 CHECK-LTO-NEXT:   DW_AT_name {{.*}}"val"
 CHECK-LTO-NOT: Found valid debug map entry
-CHECK-LTO: Found valid debug map entry: _bar 	0000000000000050 => 0000000100000f90
+CHECK-LTO: Found valid debug map entry: _bar	0x0000000000000050 => 0x0000000100000f90
+CHECK-LTO-NEXT: Keeping subprogram DIE:
 CHECK-LTO-NEXT: DW_TAG_subprogram
 CHECK-LTO-NEXT:   DW_AT_name {{.*}}"bar"
 
@@ -120,36 +134,44 @@ CHECK-ARCHIVE-NOT: TAG
 CHECK-ARCHIVE: AT_name {{.*}}basic3.c
 
 CHECK-ARCHIVE-NOT: Found valid debug map entry
-CHECK-ARCHIVE: Found valid debug map entry: _main 	0000000000000000 => 0000000100000ea0
+CHECK-ARCHIVE: Found valid debug map entry: _main	0x0000000000000000 => 0x0000000100000ea0
+CHECK-ARCHIVE-NEXT: Keeping subprogram DIE:
 CHECK-ARCHIVE-NEXT: DW_TAG_subprogram
 CHECK-ARCHIVE-NEXT:   DW_AT_name{{.*}}"main"
 
 CHECK-ARCHIVE-NOT: Found valid debug map entry
-CHECK-ARCHIVE: Found valid debug map entry: _private_int 	0000000000000560 => 0000000100001004
+CHECK-ARCHIVE: Found valid debug map entry: _private_int	0x0000000000000560 => 0x0000000100001004
+CHECK-ARCHIVE-NEXT: Keeping variable DIE:
 CHECK-ARCHIVE-NEXT: DW_TAG_variable
 CHECK-ARCHIVE-NEXT:   DW_AT_name {{.*}}"private_int"
 CHECK-ARCHIVE-NOT: Found valid debug map entry
-CHECK-ARCHIVE: Found valid debug map entry: _baz 	0000000000000310 => 0000000100001000
+CHECK-ARCHIVE: Found valid debug map entry: _baz	0x0000000000000310 => 0x0000000100001000
+CHECK-ARCHIVE-NEXT: Keeping variable DIE:
 CHECK-ARCHIVE-NEXT: DW_TAG_variable
 CHECK-ARCHIVE-NEXT:   DW_AT_name {{.*}}"baz"
 CHECK-ARCHIVE-NOT: Found valid debug map entry
-CHECK-ARCHIVE: Found valid debug map entry: _foo 	0000000000000020 => 0000000100000ed0
+CHECK-ARCHIVE: Found valid debug map entry: _foo	0x0000000000000020 => 0x0000000100000ed0
+CHECK-ARCHIVE-NEXT: Keeping subprogram DIE:
 CHECK-ARCHIVE-NEXT: DW_TAG_subprogram
 CHECK-ARCHIVE-NEXT:   DW_AT_name {{.*}}"foo"
 CHECK-ARCHIVE-NOT: Found valid debug map entry
-CHECK-ARCHIVE: Found valid debug map entry: _inc 	0000000000000070 => 0000000100000f20
+CHECK-ARCHIVE: Found valid debug map entry: _inc	0x0000000000000070 => 0x0000000100000f20
+CHECK-ARCHIVE-NEXT: Keeping subprogram DIE:
 CHECK-ARCHIVE-NEXT: DW_TAG_subprogram
 CHECK-ARCHIVE-NEXT:   DW_AT_name {{.*}}"inc"
 
 CHECK-ARCHIVE-NOT: Found valid debug map entry
-CHECK-ARCHIVE: Found valid debug map entry: _val 	ffffffffffffffff => 0000000100001008
+CHECK-ARCHIVE: Found valid debug map entry: _val	0xffffffffffffffff => 0x0000000100001008
+CHECK-ARCHIVE-NEXT: Keeping variable DIE:
 CHECK-ARCHIVE-NEXT: DW_TAG_variable
 CHECK-ARCHIVE-NEXT:   DW_AT_name {{.*}}"val"
 CHECK-ARCHIVE-NOT: Found valid debug map entry
-CHECK-ARCHIVE: Found valid debug map entry: _bar 	0000000000000020 => 0000000100000f40
+CHECK-ARCHIVE: Found valid debug map entry: _bar	0x0000000000000020 => 0x0000000100000f40
+CHECK-ARCHIVE-NEXT: Keeping subprogram DIE:
 CHECK-ARCHIVE-NEXT: DW_TAG_subprogram
 CHECK-ARCHIVE-NEXT:   DW_AT_name {{.*}}"bar"
 CHECK-ARCHIVE-NOT: Found valid debug map entry
-CHECK-ARCHIVE: Found valid debug map entry: _inc 	0000000000000070 => 0000000100000f90
+CHECK-ARCHIVE: Found valid debug map entry: _inc	0x0000000000000070 => 0x0000000100000f90
+CHECK-ARCHIVE-NEXT: Keeping subprogram DIE:
 CHECK-ARCHIVE-NEXT: DW_TAG_subprogram
 CHECK-ARCHIVE-NEXT:   DW_AT_name {{.*}}"inc")

Modified: llvm/trunk/tools/dsymutil/DwarfLinker.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/dsymutil/DwarfLinker.cpp?rev=374123&r1=374122&r2=374123&view=diff
==============================================================================
--- llvm/trunk/tools/dsymutil/DwarfLinker.cpp (original)
+++ llvm/trunk/tools/dsymutil/DwarfLinker.cpp Tue Oct  8 15:03:13 2019
@@ -578,16 +578,17 @@ bool DwarfLinker::RelocationManager::has
 
   const auto &ValidReloc = ValidRelocs[NextValidReloc++];
   const auto &Mapping = ValidReloc.Mapping->getValue();
-  uint64_t ObjectAddress = Mapping.ObjectAddress
-                               ? uint64_t(*Mapping.ObjectAddress)
-                               : std::numeric_limits<uint64_t>::max();
+  const uint64_t BinaryAddress = Mapping.BinaryAddress;
+  const uint64_t ObjectAddress = Mapping.ObjectAddress
+                                     ? uint64_t(*Mapping.ObjectAddress)
+                                     : std::numeric_limits<uint64_t>::max();
   if (Linker.Options.Verbose)
     outs() << "Found valid debug map entry: " << ValidReloc.Mapping->getKey()
-           << " "
-           << format("\t%016" PRIx64 " => %016" PRIx64, ObjectAddress,
-                     uint64_t(Mapping.BinaryAddress));
+           << "\t"
+           << format("0x%016" PRIx64 " => 0x%016" PRIx64 "\n", ObjectAddress,
+                     BinaryAddress);
 
-  Info.AddrAdjust = int64_t(Mapping.BinaryAddress) + ValidReloc.Addend;
+  Info.AddrAdjust = BinaryAddress + ValidReloc.Addend;
   if (Mapping.ObjectAddress)
     Info.AddrAdjust -= ObjectAddress;
   Info.InDebugMap = true;
@@ -644,7 +645,7 @@ unsigned DwarfLinker::shouldKeepVariable
 
   // See if there is a relocation to a valid debug map entry inside
   // this variable's location. The order is important here. We want to
-  // always check in the variable has a valid relocation, so that the
+  // always check if the variable has a valid relocation, so that the
   // DIEInfo is filled. However, we don't want a static variable in a
   // function to force us to keep the enclosing function.
   if (!RelocMgr.hasValidRelocation(LocationOffset, LocationEndOffset, MyInfo) ||
@@ -652,6 +653,7 @@ unsigned DwarfLinker::shouldKeepVariable
     return Flags;
 
   if (Options.Verbose) {
+    outs() << "Keeping variable DIE:";
     DIDumpOptions DumpOpts;
     DumpOpts.ChildRecurseDepth = 0;
     DumpOpts.Verbose = Options.Verbose;
@@ -688,6 +690,7 @@ unsigned DwarfLinker::shouldKeepSubprogr
     return Flags;
 
   if (Options.Verbose) {
+    outs() << "Keeping subprogram DIE:";
     DIDumpOptions DumpOpts;
     DumpOpts.ChildRecurseDepth = 0;
     DumpOpts.Verbose = Options.Verbose;




More information about the llvm-commits mailing list