1# Test that parsing of line tables works reasonably. In this case the debug info 2# does not have enough information for our heuristics to determine the path 3# style, so we will just treat them as native host paths. 4 5# REQUIRES: lld, x86 6 7# RUN: llvm-mc -triple x86_64-pc-linux %s -filetype=obj > %t.o 8# RUN: ld.lld %t.o -o %t -z separate-code 9# RUN: %lldb %t -s %S/Inputs/dir-separator-no-comp-dir-relative-name.lldbinit -o exit | FileCheck %s 10 11# CHECK-LABEL: image dump line-table a.c 12# CHECK: Line table for foo{{.}}a.c 13# CHECK-NEXT: 0x0000000000201000: foo{{.}}a.c:1 14# CHECK-NEXT: 0x0000000000201001: foo{{.}}b.c:1 15# CHECK-NEXT: 0x0000000000201002: foo{{.}}b.c:1 16# CHECK-EMPTY: 17 18# CHECK-LABEL: breakpoint set -f a.c -l 1 19# CHECK: Breakpoint 1: {{.*}}`_start, 20 21# CHECK-LABEL: breakpoint set -f foo/b.c -l 1 22# CHECK: Breakpoint 2: {{.*}}`_start + 1, 23 24 .text 25 .globl _start 26_start: 27 .file 1 "foo/a.c" 28 .loc 1 1 0 29 nop 30 .file 2 "foo/b.c" 31 .loc 2 1 0 32 nop 33 34 .section .debug_str,"MS",@progbits,1 35.Linfo_string1: 36 .asciz "foo/a.c" 37 .section .debug_abbrev,"",@progbits 38 .byte 1 # Abbreviation Code 39 .byte 17 # DW_TAG_compile_unit 40 .byte 0 # DW_CHILDREN_no 41 .byte 19 # DW_AT_language 42 .byte 5 # DW_FORM_data2 43 .byte 3 # DW_AT_name 44 .byte 14 # DW_FORM_strp 45 .byte 16 # DW_AT_stmt_list 46 .byte 23 # DW_FORM_sec_offset 47 .byte 0 # EOM(1) 48 .byte 0 # EOM(2) 49 .byte 0 # EOM(3) 50 .section .debug_info,"",@progbits 51.Lcu_begin0: 52 .long .Lcu_end0-.Lcu_start0 # Length of Unit 53.Lcu_start0: 54 .short 4 # DWARF version number 55 .long .debug_abbrev # Offset Into Abbrev. Section 56 .byte 8 # Address Size (in bytes) 57 .byte 1 # Abbrev [1] 0xb:0x1f DW_TAG_compile_unit 58 .short 12 # DW_AT_language 59 .long .Linfo_string1 # DW_AT_name 60 .long .Lline_table_start0 # DW_AT_stmt_list 61.Lcu_end0: 62 .section .debug_line,"",@progbits 63.Lline_table_start0: 64