13dc24bc3SCaroline Tice# Test to verify LLDB searches for dwos with relative paths relative to the 23dc24bc3SCaroline Tice# binary location, not relative to LLDB's launch location. 33dc24bc3SCaroline Tice 4*4139461dSDavid Spickett# REQUIRES: x86 5268a42d6SDave Lee 63dc24bc3SCaroline Tice# RUN: llvm-mc --filetype=obj --triple x86_64-pc-linux %s -o %t.o 73dc24bc3SCaroline Tice# RUN: llvm-objcopy --split-dwo=%T/dwo-relative-path.dwo %t.o 83dc24bc3SCaroline Tice 93dc24bc3SCaroline Tice# RUN: cd ../.. 103dc24bc3SCaroline Tice 113dc24bc3SCaroline Tice# RUN: %lldb %t.o -o "target var x" -b 2>&1 | FileCheck %s 123dc24bc3SCaroline Tice 133dc24bc3SCaroline Tice# CHECK: x = 10 143dc24bc3SCaroline Tice 153dc24bc3SCaroline Tice .file "dwo-relative-path.cpp" 163dc24bc3SCaroline Tice .file 0 "." "dwo-relative-path.cpp" md5 0xadc61d242247514c5d402d62db34b825 173dc24bc3SCaroline Tice .type x,@object # @x 183dc24bc3SCaroline Tice .data 193dc24bc3SCaroline Tice .globl x 203dc24bc3SCaroline Tice .p2align 2 213dc24bc3SCaroline Ticex: 223dc24bc3SCaroline Tice .long 10 # 0xa 233dc24bc3SCaroline Tice .size x, 4 243dc24bc3SCaroline Tice 253dc24bc3SCaroline Tice .section .debug_abbrev,"",@progbits 263dc24bc3SCaroline Tice .byte 1 # Abbreviation Code 273dc24bc3SCaroline Tice .byte 74 # DW_TAG_skeleton_unit 283dc24bc3SCaroline Tice .byte 0 # DW_CHILDREN_no 293dc24bc3SCaroline Tice .byte 16 # DW_AT_stmt_list 303dc24bc3SCaroline Tice .byte 23 # DW_FORM_sec_offset 313dc24bc3SCaroline Tice .byte 114 # DW_AT_str_offsets_base 323dc24bc3SCaroline Tice .byte 23 # DW_FORM_sec_offset 333dc24bc3SCaroline Tice .byte 27 # DW_AT_comp_dir 343dc24bc3SCaroline Tice .byte 37 # DW_FORM_strx1 353dc24bc3SCaroline Tice .ascii "\264B" # DW_AT_GNU_pubnames 363dc24bc3SCaroline Tice .byte 25 # DW_FORM_flag_present 373dc24bc3SCaroline Tice .byte 118 # DW_AT_dwo_name 383dc24bc3SCaroline Tice .byte 37 # DW_FORM_strx1 393dc24bc3SCaroline Tice .byte 115 # DW_AT_addr_base 403dc24bc3SCaroline Tice .byte 23 # DW_FORM_sec_offset 413dc24bc3SCaroline Tice .byte 0 # EOM(1) 423dc24bc3SCaroline Tice .byte 0 # EOM(2) 433dc24bc3SCaroline Tice .byte 0 # EOM(3) 443dc24bc3SCaroline Tice .section .debug_info,"",@progbits 453dc24bc3SCaroline Tice.Lcu_begin0: 463dc24bc3SCaroline Tice .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit 473dc24bc3SCaroline Tice.Ldebug_info_start0: 483dc24bc3SCaroline Tice .short 5 # DWARF version number 493dc24bc3SCaroline Tice .byte 4 # DWARF Unit Type 503dc24bc3SCaroline Tice .byte 8 # Address Size (in bytes) 513dc24bc3SCaroline Tice .long .debug_abbrev # Offset Into Abbrev. Section 523dc24bc3SCaroline Tice .quad 3752513468363206953 533dc24bc3SCaroline Tice .byte 1 # Abbrev [1] 0x14:0x14 DW_TAG_skeleton_unit 543dc24bc3SCaroline Tice .long .Lline_table_start0 # DW_AT_stmt_list 553dc24bc3SCaroline Tice .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 563dc24bc3SCaroline Tice .byte 0 # DW_AT_comp_dir 573dc24bc3SCaroline Tice # DW_AT_GNU_pubnames 583dc24bc3SCaroline Tice .byte 1 # DW_AT_dwo_name 593dc24bc3SCaroline Tice .long .Laddr_table_base0 # DW_AT_addr_base 603dc24bc3SCaroline Tice.Ldebug_info_end0: 613dc24bc3SCaroline Tice .section .debug_str_offsets,"",@progbits 623dc24bc3SCaroline Tice .long 12 # Length of String Offsets Set 633dc24bc3SCaroline Tice .short 5 643dc24bc3SCaroline Tice .short 0 653dc24bc3SCaroline Tice.Lstr_offsets_base0: 663dc24bc3SCaroline Tice .section .debug_str,"MS",@progbits,1 673dc24bc3SCaroline Tice.Lskel_string0: 683dc24bc3SCaroline Tice .asciz "." # string offset=0 693dc24bc3SCaroline Tice.Lskel_string1: 703dc24bc3SCaroline Tice .asciz "dwo-relative-path.dwo" # string offset=2 713dc24bc3SCaroline Tice .section .debug_str_offsets,"",@progbits 723dc24bc3SCaroline Tice .long .Lskel_string0 733dc24bc3SCaroline Tice .long .Lskel_string1 743dc24bc3SCaroline Tice .section .debug_str_offsets.dwo,"e",@progbits 753dc24bc3SCaroline Tice .long 24 # Length of String Offsets Set 763dc24bc3SCaroline Tice .short 5 773dc24bc3SCaroline Tice .short 0 783dc24bc3SCaroline Tice .section .debug_str.dwo,"eMS",@progbits,1 793dc24bc3SCaroline Tice.Linfo_string0: 803dc24bc3SCaroline Tice .asciz "x" 813dc24bc3SCaroline Tice.Linfo_string1: 823dc24bc3SCaroline Tice .asciz "int" 833dc24bc3SCaroline Tice.Linfo_string2: 843dc24bc3SCaroline Tice .asciz "clang version 13.0.0 (https://chromium.googlesource.com/external/github.com/llvm/llvm-project 6666e0d7a29c639df7a1652b6d3bf16f28edd45a)" 853dc24bc3SCaroline Tice.Linfo_string3: 863dc24bc3SCaroline Tice .asciz "dwo-relative-path.cpp" 873dc24bc3SCaroline Tice.Linfo_string10: 883dc24bc3SCaroline Tice .asciz "dwo-relative-path.dwo" 893dc24bc3SCaroline Tice .section .debug_str_offsets.dwo,"e",@progbits 903dc24bc3SCaroline Tice .long .Linfo_string0-.debug_str.dwo 913dc24bc3SCaroline Tice .long .Linfo_string1-.debug_str.dwo 923dc24bc3SCaroline Tice .long .Linfo_string2-.debug_str.dwo 933dc24bc3SCaroline Tice .long .Linfo_string3-.debug_str.dwo 943dc24bc3SCaroline Tice .section .debug_info.dwo,"e",@progbits 953dc24bc3SCaroline Tice .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit 963dc24bc3SCaroline Tice.Ldebug_info_dwo_start0: 973dc24bc3SCaroline Tice .short 5 # DWARF version number 983dc24bc3SCaroline Tice .byte 5 # DWARF Unit Type 993dc24bc3SCaroline Tice .byte 8 # Address Size (in bytes) 1003dc24bc3SCaroline Tice .long 0 # Offset Into Abbrev. Section 1013dc24bc3SCaroline Tice .quad 3752513468363206953 1023dc24bc3SCaroline Tice .byte 1 # Abbrev [1] 0x14:0x65 DW_TAG_compile_unit 1033dc24bc3SCaroline Tice .byte 8 # DW_AT_producer 1043dc24bc3SCaroline Tice .short 33 # DW_AT_language 1053dc24bc3SCaroline Tice .byte 9 # DW_AT_name 1063dc24bc3SCaroline Tice .byte 10 # DW_AT_dwo_name 1073dc24bc3SCaroline Tice .byte 2 # Abbrev [2] 0x1a:0xb DW_TAG_variable 1083dc24bc3SCaroline Tice .byte 0 # DW_AT_name 1093dc24bc3SCaroline Tice .long 37 # DW_AT_type 1103dc24bc3SCaroline Tice # DW_AT_external 1113dc24bc3SCaroline Tice .byte 0 # DW_AT_decl_file 1123dc24bc3SCaroline Tice .byte 11 # DW_AT_decl_line 1133dc24bc3SCaroline Tice .byte 2 # DW_AT_location 1143dc24bc3SCaroline Tice .byte 161 1153dc24bc3SCaroline Tice .byte 0 1163dc24bc3SCaroline Tice .byte 3 # Abbrev [3] 0x25:0x4 DW_TAG_base_type 1173dc24bc3SCaroline Tice .byte 1 # DW_AT_name 1183dc24bc3SCaroline Tice .byte 5 # DW_AT_encoding 1193dc24bc3SCaroline Tice .byte 4 # DW_AT_byte_size 1203dc24bc3SCaroline Tice .byte 0 # End Of Children Mark 1213dc24bc3SCaroline Tice.Ldebug_info_dwo_end0: 1223dc24bc3SCaroline Tice .section .debug_abbrev.dwo,"e",@progbits 1233dc24bc3SCaroline Tice .byte 1 # Abbreviation Code 1243dc24bc3SCaroline Tice .byte 17 # DW_TAG_compile_unit 1253dc24bc3SCaroline Tice .byte 1 # DW_CHILDREN_yes 1263dc24bc3SCaroline Tice .byte 37 # DW_AT_producer 1273dc24bc3SCaroline Tice .byte 37 # DW_FORM_strx1 1283dc24bc3SCaroline Tice .byte 19 # DW_AT_language 1293dc24bc3SCaroline Tice .byte 5 # DW_FORM_data2 1303dc24bc3SCaroline Tice .byte 3 # DW_AT_name 1313dc24bc3SCaroline Tice .byte 37 # DW_FORM_strx1 1323dc24bc3SCaroline Tice .byte 118 # DW_AT_dwo_name 1333dc24bc3SCaroline Tice .byte 37 # DW_FORM_strx1 1343dc24bc3SCaroline Tice .byte 0 # EOM(1) 1353dc24bc3SCaroline Tice .byte 0 # EOM(2) 1363dc24bc3SCaroline Tice .byte 2 # Abbreviation Code 1373dc24bc3SCaroline Tice .byte 52 # DW_TAG_variable 1383dc24bc3SCaroline Tice .byte 0 # DW_CHILDREN_no 1393dc24bc3SCaroline Tice .byte 3 # DW_AT_name 1403dc24bc3SCaroline Tice .byte 37 # DW_FORM_strx1 1413dc24bc3SCaroline Tice .byte 73 # DW_AT_type 1423dc24bc3SCaroline Tice .byte 19 # DW_FORM_ref4 1433dc24bc3SCaroline Tice .byte 63 # DW_AT_external 1443dc24bc3SCaroline Tice .byte 25 # DW_FORM_flag_present 1453dc24bc3SCaroline Tice .byte 58 # DW_AT_decl_file 1463dc24bc3SCaroline Tice .byte 11 # DW_FORM_data1 1473dc24bc3SCaroline Tice .byte 59 # DW_AT_decl_line 1483dc24bc3SCaroline Tice .byte 11 # DW_FORM_data1 1493dc24bc3SCaroline Tice .byte 2 # DW_AT_location 1503dc24bc3SCaroline Tice .byte 24 # DW_FORM_exprloc 1513dc24bc3SCaroline Tice .byte 0 # EOM(1) 1523dc24bc3SCaroline Tice .byte 0 # EOM(2) 1533dc24bc3SCaroline Tice .byte 3 # Abbreviation Code 1543dc24bc3SCaroline Tice .byte 36 # DW_TAG_base_type 1553dc24bc3SCaroline Tice .byte 0 # DW_CHILDREN_no 1563dc24bc3SCaroline Tice .byte 3 # DW_AT_name 1573dc24bc3SCaroline Tice .byte 37 # DW_FORM_strx1 1583dc24bc3SCaroline Tice .byte 62 # DW_AT_encoding 1593dc24bc3SCaroline Tice .byte 11 # DW_FORM_data1 1603dc24bc3SCaroline Tice .byte 11 # DW_AT_byte_size 1613dc24bc3SCaroline Tice .byte 11 # DW_FORM_data1 1623dc24bc3SCaroline Tice .byte 0 # EOM(1) 1633dc24bc3SCaroline Tice .byte 0 # EOM(2) 1643dc24bc3SCaroline Tice .byte 0 # EOM(3) 1653dc24bc3SCaroline Tice .section .debug_addr,"",@progbits 1663dc24bc3SCaroline Tice .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution 1673dc24bc3SCaroline Tice.Ldebug_addr_start0: 1683dc24bc3SCaroline Tice .short 5 # DWARF version number 1693dc24bc3SCaroline Tice .byte 8 # Address size 1703dc24bc3SCaroline Tice .byte 0 # Segment selector size 1713dc24bc3SCaroline Tice.Laddr_table_base0: 1723dc24bc3SCaroline Tice .quad x 1733dc24bc3SCaroline Tice.Ldebug_addr_end0: 1743dc24bc3SCaroline Tice .section .debug_line,"",@progbits 1753dc24bc3SCaroline Tice.Lline_table_start0: 176