Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add a verbose mode to "image dump line-table" and use it to write a .…
…debug_line test Summary: The motivation for this is being able to write tests for the upcoming breakpad line table parser, but this could be useful for testing the low-level workings of any line table format. Or simply for viewing the line table information with more detail (the brief format doesn't include any of the flags for end_of_prologue and similar). I've also removed the load_addresses argument from the DumpCompileUnitLineTable function, as it wasn't being used anywhere. Reviewers: clayborg, zturner Subscribers: JDevlieghere, lldb-commits Differential Revision: https://reviews.llvm.org/D56315 llvm-svn: 350802
- Loading branch information
Showing
2 changed files
with
119 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
# REQUIRES: lld | ||
|
||
# RUN: llvm-mc -triple x86_64-pc-linux %s -filetype=obj > %t.o | ||
# RUN: ld.lld %t.o -o %t | ||
# RUN: %lldb %t -o "image dump line-table -v a.c" -o exit | FileCheck %s | ||
|
||
|
||
.text | ||
.globl _start | ||
_start: | ||
# CHECK: Line table for /tmp/a.c | ||
.file 1 "/tmp/b.c" | ||
.loc 1 0 0 | ||
nop | ||
# CHECK-NEXT: 0x0000000000201000: /tmp/b.c, is_start_of_statement = TRUE{{$}} | ||
.loc 1 1 0 | ||
nop | ||
# CHECK-NEXT: 0x0000000000201001: /tmp/b.c:1, is_start_of_statement = TRUE{{$}} | ||
.loc 1 1 1 | ||
nop | ||
# CHECK-NEXT: 0x0000000000201002: /tmp/b.c:1:1, is_start_of_statement = TRUE{{$}} | ||
.loc 1 2 0 is_stmt 0 | ||
nop | ||
# CHECK-NEXT: 0x0000000000201003: /tmp/b.c:2{{$}} | ||
.loc 1 2 0 is_stmt 0 basic_block | ||
nop | ||
# CHECK-NEXT: 0x0000000000201004: /tmp/b.c:2, is_start_of_basic_block = TRUE{{$}} | ||
.loc 1 2 0 is_stmt 0 prologue_end | ||
nop | ||
# CHECK-NEXT: 0x0000000000201005: /tmp/b.c:2, is_prologue_end = TRUE{{$}} | ||
.loc 1 2 0 is_stmt 0 epilogue_begin | ||
nop | ||
# CHECK-NEXT: 0x0000000000201006: /tmp/b.c:2, is_epilogue_begin = TRUE{{$}} | ||
.file 2 "/tmp/c.c" | ||
.loc 2 1 0 is_stmt 0 | ||
nop | ||
# CHECK-NEXT: 0x0000000000201007: /tmp/c.c:1{{$}} | ||
|
||
# CHECK-NEXT: 0x0000000000201008: /tmp/c.c:1, is_terminal_entry = TRUE{{$}} | ||
|
||
.section .debug_str,"MS",@progbits,1 | ||
.Linfo_string1: | ||
.asciz "a.c" | ||
.Linfo_string2: | ||
.asciz "/tmp" | ||
.section .debug_abbrev,"",@progbits | ||
.byte 1 # Abbreviation Code | ||
.byte 17 # DW_TAG_compile_unit | ||
.byte 0 # DW_CHILDREN_no | ||
.byte 19 # DW_AT_language | ||
.byte 5 # DW_FORM_data2 | ||
.byte 3 # DW_AT_name | ||
.byte 14 # DW_FORM_strp | ||
.byte 16 # DW_AT_stmt_list | ||
.byte 23 # DW_FORM_sec_offset | ||
.byte 27 # DW_AT_comp_dir | ||
.byte 14 # DW_FORM_strp | ||
.byte 0 # EOM(1) | ||
.byte 0 # EOM(2) | ||
.byte 0 # EOM(3) | ||
.section .debug_info,"",@progbits | ||
.Lcu_begin0: | ||
.long .Lcu_end0-.Lcu_start0 # Length of Unit | ||
.Lcu_start0: | ||
.short 4 # DWARF version number | ||
.long .debug_abbrev # Offset Into Abbrev. Section | ||
.byte 8 # Address Size (in bytes) | ||
.byte 1 # Abbrev [1] 0xb:0x1f DW_TAG_compile_unit | ||
.short 12 # DW_AT_language | ||
.long .Linfo_string1 # DW_AT_name | ||
.long .Lline_table_start0 # DW_AT_stmt_list | ||
.long .Linfo_string2 # DW_AT_comp_dir | ||
.Lcu_end0: | ||
.section .debug_line,"",@progbits | ||
.Lline_table_start0: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters