[llvm] r318856 - [DwarfDump] -debug-line=offset applies to .dwo too.

Paul Robinson via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 22 10:23:56 PST 2017


Author: probinson
Date: Wed Nov 22 10:23:55 2017
New Revision: 318856

URL: http://llvm.org/viewvc/llvm-project?rev=318856&view=rev
Log:
[DwarfDump] -debug-line=offset applies to .dwo too.

Added:
    llvm/trunk/test/DebugInfo/X86/dwarfdump-line-dwo.s
Removed:
    llvm/trunk/test/DebugInfo/Inputs/dwarfdump-line-dwo.cc
    llvm/trunk/test/DebugInfo/Inputs/dwarfdump-line-dwo.elf-x86-64
    llvm/trunk/test/DebugInfo/dwarfdump-line-dwo.test
Modified:
    llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cpp

Modified: llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cpp?rev=318856&r1=318855&r2=318856&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cpp (original)
+++ llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cpp Wed Nov 22 10:23:55 2017
@@ -379,9 +379,11 @@ void DWARFContext::dump(
       if (It != LineToUnit.end())
         U = It->second;
       DWARFDebugLine::LineTable LineTable;
+      unsigned OldOffset = Offset;
       if (!LineTable.Prologue.parse(LineData, &Offset, U))
         break;
-      LineTable.dump(OS);
+      if (!DumpOffset || OldOffset == *DumpOffset)
+        LineTable.dump(OS);
     }
   }
 

Removed: llvm/trunk/test/DebugInfo/Inputs/dwarfdump-line-dwo.cc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/Inputs/dwarfdump-line-dwo.cc?rev=318855&view=auto
==============================================================================
--- llvm/trunk/test/DebugInfo/Inputs/dwarfdump-line-dwo.cc (original)
+++ llvm/trunk/test/DebugInfo/Inputs/dwarfdump-line-dwo.cc (removed)
@@ -1,10 +0,0 @@
-struct foo {
-};
-
-foo f;
-
-// Built with GCC
-// $ mkdir -p /tmp/dbginfo
-// $ cp dwarfdump-line-dwo.cc /tmp/dbginfo
-// $ cd /tmp/dbginfo
-// $ g++ -c -fdebug-types-section dwarfdump-line-dwo.cc -o <output>

Removed: llvm/trunk/test/DebugInfo/Inputs/dwarfdump-line-dwo.elf-x86-64
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/Inputs/dwarfdump-line-dwo.elf-x86-64?rev=318855&view=auto
==============================================================================
Binary files llvm/trunk/test/DebugInfo/Inputs/dwarfdump-line-dwo.elf-x86-64 (original) and llvm/trunk/test/DebugInfo/Inputs/dwarfdump-line-dwo.elf-x86-64 (removed) differ

Added: llvm/trunk/test/DebugInfo/X86/dwarfdump-line-dwo.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/dwarfdump-line-dwo.s?rev=318856&view=auto
==============================================================================
--- llvm/trunk/test/DebugInfo/X86/dwarfdump-line-dwo.s (added)
+++ llvm/trunk/test/DebugInfo/X86/dwarfdump-line-dwo.s Wed Nov 22 10:23:55 2017
@@ -0,0 +1,97 @@
+# Dump the complete .debug_line.dwo, then just one part.
+#
+# RUN: llvm-mc -triple x86_64-unknown-unknown -filetype=obj %s -o %t.o
+# RUN: llvm-dwarfdump -debug-line %t.o | FileCheck %s --check-prefixes=PART1,PART2
+# RUN: llvm-dwarfdump -debug-line=0x32 %t.o | FileCheck %s --check-prefix=PART2
+
+        .section .debug_line.dwo,"", at progbits
+LH_1_start:
+        .long   LH_1_end-LH_1_version   # Length of Unit
+LH_1_version:
+        .short  4               # DWARF version number
+        .long   LH_1_header_end-LH_1_params     # Length of Prologue
+LH_1_params:
+        .byte   1               # Minimum Instruction Length
+        .byte   1               # Maximum Operations per Instruction
+        .byte   1               # Default is_stmt
+        .byte   -5              # Line Base
+        .byte   14              # Line Range
+        .byte   13              # Opcode Base
+        .byte   0               # Standard Opcode Lengths
+        .byte   1
+        .byte   1
+        .byte   1
+        .byte   1
+        .byte   0
+        .byte   0
+        .byte   0
+        .byte   1
+        .byte   0
+        .byte   0
+        .byte   1
+        # Directory table
+        .asciz  "Directory1"
+        .byte   0
+        # File table
+        .asciz  "File1"         # File name
+        .byte   1               # Directory index
+        .byte   0x41            # Timestamp
+        .byte   0x42            # File Size
+        .byte   0               # End of list
+LH_1_header_end:
+        # Line number program, which is empty.
+LH_1_end:
+
+# PART1:      Line table prologue:
+# PART1-NEXT: total_length: 0x0000002e
+# PART1-NEXT: version: 4
+# PART1-NEXT: prologue_length: 0x00000028
+# PART1:      include_directories[  1] = 'Directory1'
+# PART1:      file_names[  1] {{.*}} File1
+
+# Second line table.
+LH_2_start:
+        .long   LH_2_end-LH_2_version   # Length of Unit
+LH_2_version:
+        .short  4               # DWARF version number
+        .long   LH_2_header_end-LH_2_params     # Length of Prologue
+LH_2_params:
+        .byte   1               # Minimum Instruction Length
+        .byte   1               # Maximum Operations per Instruction
+        .byte   1               # Default is_stmt
+        .byte   -5              # Line Base
+        .byte   14              # Line Range
+        .byte   13              # Opcode Base
+        .byte   0               # Standard Opcode Lengths
+        .byte   1
+        .byte   1
+        .byte   1
+        .byte   1
+        .byte   0
+        .byte   0
+        .byte   0
+        .byte   1
+        .byte   0
+        .byte   0
+        .byte   1
+        # Directory table
+        .asciz  "Dir2"
+        .byte   0
+        # File table
+        .asciz  "File2"         # File name
+        .byte   1               # Directory index
+        .byte   0x14            # Timestamp
+        .byte   0x24            # File Size
+        .byte   0               # End of list
+LH_2_header_end:
+        # Line number program, which is empty.
+LH_2_end:
+
+# PART2:      Line table prologue:
+# PART2-NEXT: total_length: 0x00000028
+# PART2-NEXT: version: 4
+# PART2-NEXT: prologue_length: 0x00000022
+# PART2-NOT:  prologue:
+# PART2:      include_directories[  1] = 'Dir2'
+# PART2:      file_names[  1] {{.*}} File2
+# PART2-NOT:  prologue:

Removed: llvm/trunk/test/DebugInfo/dwarfdump-line-dwo.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/dwarfdump-line-dwo.test?rev=318855&view=auto
==============================================================================
--- llvm/trunk/test/DebugInfo/dwarfdump-line-dwo.test (original)
+++ llvm/trunk/test/DebugInfo/dwarfdump-line-dwo.test (removed)
@@ -1,6 +0,0 @@
-RUN: llvm-dwarfdump -v %p/Inputs/dwarfdump-line-dwo.elf-x86-64 | FileCheck %s
-
-CHECK: .debug_line.dwo contents:
-CHECK: version: 4
-CHECK: max_ops_per_inst: 1
-CHECK: file_names[  1]{{.*}}dwarfdump-line-dwo.cc




More information about the llvm-commits mailing list