[PATCH] D38240: [dwarfdump] Add support for -debug-line=OFFSET
Jonas Devlieghere via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 25 07:47:15 PDT 2017
JDevlieghere created this revision.
This patch adds support for passing an OFFSET to -debug-line.
Repository:
rL LLVM
https://reviews.llvm.org/D38240
Files:
lib/DebugInfo/DWARF/DWARFContext.cpp
test/tools/llvm-dwarfdump/X86/debug_line_offset.test
Index: test/tools/llvm-dwarfdump/X86/debug_line_offset.test
===================================================================
--- /dev/null
+++ test/tools/llvm-dwarfdump/X86/debug_line_offset.test
@@ -0,0 +1,28 @@
+RUN: llvm-dwarfdump %S/../../dsymutil/Inputs/basic-lto-dw4.macho.x86_64.o \
+RUN: -debug-line=0x0 | FileCheck %s --check-prefix=CHECK-A
+
+CHECK-A: debug_line[0000000000000000]
+CHECK-A: Address Line Column File ISA Discriminator Flags
+CHECK-A-NET: ------------------ ------ ------ ------ --- ------------- -------------
+CHECK-A-NET: 0x0000000000000000 26 0 1 0 0 is_stmt
+CHECK-A-NET: 0x0000000000000004 27 10 1 0 0 is_stmt prologue_end
+CHECK-A-NET: 0x0000000000000009 27 3 1 0 0
+CHECK-A-NET: 0x0000000000000074 27 3 1 0 0 end_sequence
+CHECK-A-NOT: debug_line[000000000000009a]
+
+RUN: llvm-dwarfdump %S/../../dsymutil/Inputs/basic-lto-dw4.macho.x86_64.o \
+RUN: -debug-line=0x9a | FileCheck %s --check-prefix=CHECK-B
+
+CHECK-B-NOT: debug_line[0000000000000000]
+CHECK-B: debug_line[000000000000009a]
+CHECK-B: Address Line Column File ISA Discriminator Flags
+CHECK-B-NEXT: ------------------ ------ ------ ------ --- ------------- -------------
+CHECK-B-NEXT: 0x0000000000000050 16 0 1 0 0 is_stmt
+CHECK-B-NEXT: 0x0000000000000054 12 10 1 0 0 is_stmt prologue_end
+CHECK-B-NEXT: 0x000000000000005a 17 7 1 0 0 is_stmt
+CHECK-B-NEXT: 0x000000000000005f 12 10 1 0 0 is_stmt
+CHECK-B-NEXT: 0x0000000000000067 20 1 1 0 0 is_stmt
+CHECK-B-NEXT: 0x0000000000000069 19 18 1 0 0 is_stmt
+CHECK-B-NEXT: 0x000000000000006b 19 10 1 0 0
+CHECK-B-NEXT: 0x0000000000000072 20 1 1 0 0 is_stmt
+CHECK-B-NEXT: 0x0000000000000074 20 1 1 0 0 is_stmt end_sequence
Index: lib/DebugInfo/DWARF/DWARFContext.cpp
===================================================================
--- lib/DebugInfo/DWARF/DWARFContext.cpp
+++ lib/DebugInfo/DWARF/DWARFContext.cpp
@@ -331,12 +331,15 @@
if (!CUDIE)
continue;
if (auto StmtOffset = toSectionOffset(CUDIE.find(DW_AT_stmt_list))) {
+ if (DumpOffset && *StmtOffset != *DumpOffset)
+ continue;
DWARFDataExtractor lineData(*DObj, DObj->getLineSection(),
isLittleEndian(), savedAddressByteSize);
DWARFDebugLine::LineTable LineTable;
uint32_t Offset = *StmtOffset;
// Verbose dumping is done during parsing and not on the intermediate
// representation.
+ OS << "debug_line[" << format("%16.16" PRIx64, Offset) << "]\n";
if (DumpOpts.Verbose) {
LineTable.parse(lineData, &Offset, &OS);
} else {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D38240.116556.patch
Type: text/x-patch
Size: 2995 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170925/24e602d5/attachment.bin>
More information about the llvm-commits
mailing list