[PATCH] D75668: [DebugInfo] Print the actual value of an unknown section identifier.

Igor Kudrin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 5 02:14:11 PST 2020


ikudrin created this revision.
ikudrin added reviewers: dblaikie, probinson, aprantl, jhenderson.
ikudrin added projects: LLVM, debug-info.
Herald added subscribers: arphaman, hiraditya.

This is a follow-up for D75609 <https://reviews.llvm.org/D75609>. As @dblaikie suggested, it prints the actual number for an unknown section identifier when dumping unit index sections.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D75668

Files:
  llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp
  llvm/test/DebugInfo/X86/debug-cu-index-unknown-section.s


Index: llvm/test/DebugInfo/X86/debug-cu-index-unknown-section.s
===================================================================
--- llvm/test/DebugInfo/X86/debug-cu-index-unknown-section.s
+++ llvm/test/DebugInfo/X86/debug-cu-index-unknown-section.s
@@ -1,11 +1,11 @@
 # RUN: llvm-mc -triple x86_64-unknown-linux %s -filetype=obj -o - | \
 # RUN:   llvm-dwarfdump -debug-cu-index - | \
-# RUN:   FileCheck %s
+# RUN:   FileCheck %s --strict-whitespace
 
 # CHECK:      .debug_cu_index contents:
 # CHECK-NEXT: version = 2 slots = 2
 # CHECK-EMPTY:
-# CHECK-NEXT: Index Signature          INFO                     <unknown>
+# CHECK-NEXT: Index Signature          Unknown: 9               INFO
 # CHECK-NEXT: ----- ------------------ ------------------------ ------------------------
 # CHECK-NEXT:     1 0x1100001122222222 [0x00001000, 0x00001010) [0x00002000, 0x00002020)
 
@@ -23,11 +23,11 @@
     .long 0
 ## Table of Section Offsets:
 ## Row 0:
+    .long 9             # Unknown section identifier
     .long 1             # DW_SECT_INFO
-    .long 9             # Invalid section identifier
-# Row 1:
-    .long 0x1000        # Offset in .debug_info.dwo
-    .long 0x2000
+## Row 1:
+    .long 0x1000        # Offset in an unknown section
+    .long 0x2000        # Offset in .debug_info.dwo
 ## Table of Section Sizes:
-    .long 0x10          # Size in .debug_info.dwo
-    .long 0x20
+    .long 0x10          # Size in an unknown section
+    .long 0x20          # Size in .debug_info.dwo
Index: llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp
===================================================================
--- llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp
+++ llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp
@@ -118,7 +118,7 @@
     CASE(MACINFO);
     CASE(MACRO);
   }
-  return "<unknown>";
+  return StringRef();
 }
 
 void DWARFUnitIndex::dump(raw_ostream &OS) const {
@@ -127,8 +127,14 @@
 
   Header.dump(OS);
   OS << "Index Signature         ";
-  for (unsigned i = 0; i != Header.NumColumns; ++i)
-    OS << ' ' << left_justify(getColumnHeader(ColumnKinds[i]), 24);
+  for (unsigned i = 0; i != Header.NumColumns; ++i) {
+    DWARFSectionKind Kind = ColumnKinds[i];
+    StringRef Name = getColumnHeader(Kind);
+    if (!Name.empty())
+      OS << ' ' << left_justify(Name, 24);
+    else
+      OS << format(" Unknown: %-15u", static_cast<unsigned>(Kind));
+  }
   OS << "\n----- ------------------";
   for (unsigned i = 0; i != Header.NumColumns; ++i)
     OS << " ------------------------";


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D75668.248412.patch
Type: text/x-patch
Size: 2514 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200305/a7e96b8c/attachment.bin>


More information about the llvm-commits mailing list