xref: /llvm-project/lldb/test/Shell/SymbolFile/DWARF/dwo-relative-path.s (revision 4139461d4e7788128c2da5f77712b8d39898f189)
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