1# REQUIRES: x86 2# RUN: rm -rf %t && split-file %s %t && cd %t 3# RUN: llvm-mc -filetype=obj -triple=x86_64 a.tu.s -o a.tu.o 4# RUN: llvm-mc -filetype=obj -triple=x86_64 a.foreign-tu.s -o a.foreign-tu.o 5# RUN: llvm-mc -filetype=obj -triple=x86_64 b.s -o b.o 6 7# RUN: ld.lld --debug-names a.tu.o b.o -o out0 2>&1 | FileCheck --check-prefix=WARN %s 8# RUN: llvm-dwarfdump --debug-names out0 | FileCheck --check-prefix=DWARF %s 9 10# WARN: warning: a.tu.o:(.debug_names): type units are not implemented 11 12# DWARF: CU count: 2 13# DWARF-NEXT: Local TU count: 0 14# DWARF-NEXT: Foreign TU count: 0 15# DWARF: Compilation Unit offsets [ 16# DWARF-NEXT: CU[0]: 17# DWARF-SAME: 0x0000002a 18# DWARF-NEXT: CU[1]: 19# DWARF-SAME: 0x0000006a 20# DWARF-NEXT: ] 21# DWARF: String: {{.*}} "t1" 22# DWARF-NEXT: Entry @ 0x8f { 23# DWARF-NEXT: Abbrev: 0x2 24# DWARF-NEXT: Tag: DW_TAG_structure_type 25# DWARF-NEXT: DW_IDX_type_unit: 0x00 26# DWARF-NEXT: DW_IDX_die_offset: 0x00000023 27# DWARF-NEXT: DW_IDX_parent: <parent not indexed> 28# DWARF-NEXT: DW_IDX_compile_unit: 0x00 29# DWARF-NEXT: } 30# DWARF-NEXT: Entry @ 0x96 { 31# DWARF-NEXT: Abbrev: 0x1 32# DWARF-NEXT: Tag: DW_TAG_structure_type 33# DWARF-NEXT: DW_IDX_die_offset: 0x00000036 34# DWARF-NEXT: DW_IDX_parent: <parent not indexed> 35# DWARF-NEXT: DW_IDX_compile_unit: 0x00 36# DWARF-NEXT: } 37# DWARF-NEXT: Entry @ 0x9c { 38# DWARF-NEXT: Abbrev: 0x1 39# DWARF-NEXT: Tag: DW_TAG_structure_type 40# DWARF-NEXT: DW_IDX_die_offset: 0x00000029 41# DWARF-NEXT: DW_IDX_parent: <parent not indexed> 42# DWARF-NEXT: DW_IDX_compile_unit: 0x01 43# DWARF-NEXT: } 44 45# RUN: ld.lld --debug-names a.foreign-tu.o b.o -o out1 2>&1 | FileCheck %s --check-prefix=WARN2 46# RUN: llvm-dwarfdump --debug-names out1 | FileCheck --check-prefix=DWARF2 %s 47 48# WARN2: warning: a.foreign-tu.o:(.debug_names): type units are not implemented 49 50# DWARF2: CU count: 2 51# DWARF2-NEXT: Local TU count: 0 52# DWARF2-NEXT: Foreign TU count: 0 53# DWARF2: Compilation Unit offsets [ 54# DWARF2-NEXT: CU[0]: 55# DWARF2-SAME: 0x00000000 56# DWARF2-NEXT: CU[1]: 57# DWARF2-SAME: 0x00000028 58# DWARF2-NEXT: ] 59 60.ifdef GEN 61#--- a.cc 62struct t1 {}; 63extern "C" void _start(t1) {} 64#--- b.cc 65struct t1 { } vb; 66#--- gen 67echo '#--- a.tu.s' 68clang --target=x86_64-linux -S -O1 -g -gpubnames -fdebug-types-section a.cc -o - 69echo '#--- a.foreign-tu.s' 70clang --target=x86_64-linux -S -O1 -g -gpubnames -fdebug-types-section -gsplit-dwarf a.cc -o - 71echo '#--- b.s' 72clang --target=x86_64-linux -S -O1 -g -gpubnames b.cc -o - 73.endif 74#--- a.tu.s 75 .text 76 .file "a.cc" 77 .globl _start # -- Begin function _start 78 .p2align 4, 0x90 79 .type _start,@function 80_start: # @_start 81.Lfunc_begin0: 82 .file 0 "/proc/self/cwd" "a.cc" md5 0x6835f89a7d36054002b51e54e47d852e 83 .cfi_startproc 84# %bb.0: # %entry 85 .loc 0 2 29 prologue_end # a.cc:2:29 86 retq 87.Ltmp0: 88.Lfunc_end0: 89 .size _start, .Lfunc_end0-_start 90 .cfi_endproc 91 # -- End function 92 .section .debug_info,"G",@progbits,14297044602779165170,comdat 93.Ltu_begin0: 94 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit 95.Ldebug_info_start0: 96 .short 5 # DWARF version number 97 .byte 2 # DWARF Unit Type 98 .byte 8 # Address Size (in bytes) 99 .long .debug_abbrev # Offset Into Abbrev. Section 100 .quad -4149699470930386446 # Type Signature 101 .long 35 # Type DIE Offset 102 .byte 1 # Abbrev [1] 0x18:0x12 DW_TAG_type_unit 103 .short 33 # DW_AT_language 104 .long .Lline_table_start0 # DW_AT_stmt_list 105 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 106 .byte 2 # Abbrev [2] 0x23:0x6 DW_TAG_structure_type 107 .byte 5 # DW_AT_calling_convention 108 .byte 4 # DW_AT_name 109 .byte 1 # DW_AT_byte_size 110 .byte 0 # DW_AT_decl_file 111 .byte 1 # DW_AT_decl_line 112 .byte 0 # End Of Children Mark 113.Ldebug_info_end0: 114 .section .debug_abbrev,"",@progbits 115 .byte 1 # Abbreviation Code 116 .byte 65 # DW_TAG_type_unit 117 .byte 1 # DW_CHILDREN_yes 118 .byte 19 # DW_AT_language 119 .byte 5 # DW_FORM_data2 120 .byte 16 # DW_AT_stmt_list 121 .byte 23 # DW_FORM_sec_offset 122 .byte 114 # DW_AT_str_offsets_base 123 .byte 23 # DW_FORM_sec_offset 124 .byte 0 # EOM(1) 125 .byte 0 # EOM(2) 126 .byte 2 # Abbreviation Code 127 .byte 19 # DW_TAG_structure_type 128 .byte 0 # DW_CHILDREN_no 129 .byte 54 # DW_AT_calling_convention 130 .byte 11 # DW_FORM_data1 131 .byte 3 # DW_AT_name 132 .byte 37 # DW_FORM_strx1 133 .byte 11 # DW_AT_byte_size 134 .byte 11 # DW_FORM_data1 135 .byte 58 # DW_AT_decl_file 136 .byte 11 # DW_FORM_data1 137 .byte 59 # DW_AT_decl_line 138 .byte 11 # DW_FORM_data1 139 .byte 0 # EOM(1) 140 .byte 0 # EOM(2) 141 .byte 3 # Abbreviation Code 142 .byte 17 # DW_TAG_compile_unit 143 .byte 1 # DW_CHILDREN_yes 144 .byte 37 # DW_AT_producer 145 .byte 37 # DW_FORM_strx1 146 .byte 19 # DW_AT_language 147 .byte 5 # DW_FORM_data2 148 .byte 3 # DW_AT_name 149 .byte 37 # DW_FORM_strx1 150 .byte 114 # DW_AT_str_offsets_base 151 .byte 23 # DW_FORM_sec_offset 152 .byte 16 # DW_AT_stmt_list 153 .byte 23 # DW_FORM_sec_offset 154 .byte 27 # DW_AT_comp_dir 155 .byte 37 # DW_FORM_strx1 156 .byte 17 # DW_AT_low_pc 157 .byte 27 # DW_FORM_addrx 158 .byte 18 # DW_AT_high_pc 159 .byte 6 # DW_FORM_data4 160 .byte 115 # DW_AT_addr_base 161 .byte 23 # DW_FORM_sec_offset 162 .byte 0 # EOM(1) 163 .byte 0 # EOM(2) 164 .byte 4 # Abbreviation Code 165 .byte 46 # DW_TAG_subprogram 166 .byte 1 # DW_CHILDREN_yes 167 .byte 17 # DW_AT_low_pc 168 .byte 27 # DW_FORM_addrx 169 .byte 18 # DW_AT_high_pc 170 .byte 6 # DW_FORM_data4 171 .byte 64 # DW_AT_frame_base 172 .byte 24 # DW_FORM_exprloc 173 .byte 122 # DW_AT_call_all_calls 174 .byte 25 # DW_FORM_flag_present 175 .byte 3 # DW_AT_name 176 .byte 37 # DW_FORM_strx1 177 .byte 58 # DW_AT_decl_file 178 .byte 11 # DW_FORM_data1 179 .byte 59 # DW_AT_decl_line 180 .byte 11 # DW_FORM_data1 181 .byte 63 # DW_AT_external 182 .byte 25 # DW_FORM_flag_present 183 .byte 0 # EOM(1) 184 .byte 0 # EOM(2) 185 .byte 5 # Abbreviation Code 186 .byte 5 # DW_TAG_formal_parameter 187 .byte 0 # DW_CHILDREN_no 188 .byte 58 # DW_AT_decl_file 189 .byte 11 # DW_FORM_data1 190 .byte 59 # DW_AT_decl_line 191 .byte 11 # DW_FORM_data1 192 .byte 73 # DW_AT_type 193 .byte 19 # DW_FORM_ref4 194 .byte 0 # EOM(1) 195 .byte 0 # EOM(2) 196 .byte 6 # Abbreviation Code 197 .byte 19 # DW_TAG_structure_type 198 .byte 0 # DW_CHILDREN_no 199 .byte 60 # DW_AT_declaration 200 .byte 25 # DW_FORM_flag_present 201 .byte 105 # DW_AT_signature 202 .byte 32 # DW_FORM_ref_sig8 203 .byte 0 # EOM(1) 204 .byte 0 # EOM(2) 205 .byte 0 # EOM(3) 206 .section .debug_info,"",@progbits 207.Lcu_begin0: 208 .long .Ldebug_info_end1-.Ldebug_info_start1 # Length of Unit 209.Ldebug_info_start1: 210 .short 5 # DWARF version number 211 .byte 1 # DWARF Unit Type 212 .byte 8 # Address Size (in bytes) 213 .long .debug_abbrev # Offset Into Abbrev. Section 214 .byte 3 # Abbrev [3] 0xc:0x34 DW_TAG_compile_unit 215 .byte 0 # DW_AT_producer 216 .short 33 # DW_AT_language 217 .byte 1 # DW_AT_name 218 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 219 .long .Lline_table_start0 # DW_AT_stmt_list 220 .byte 2 # DW_AT_comp_dir 221 .byte 0 # DW_AT_low_pc 222 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 223 .long .Laddr_table_base0 # DW_AT_addr_base 224 .byte 4 # Abbrev [4] 0x23:0x13 DW_TAG_subprogram 225 .byte 0 # DW_AT_low_pc 226 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 227 .byte 1 # DW_AT_frame_base 228 .byte 87 229 # DW_AT_call_all_calls 230 .byte 3 # DW_AT_name 231 .byte 0 # DW_AT_decl_file 232 .byte 2 # DW_AT_decl_line 233 # DW_AT_external 234 .byte 5 # Abbrev [5] 0x2e:0x7 DW_TAG_formal_parameter 235 .byte 0 # DW_AT_decl_file 236 .byte 2 # DW_AT_decl_line 237 .long 54 # DW_AT_type 238 .byte 0 # End Of Children Mark 239 .byte 6 # Abbrev [6] 0x36:0x9 DW_TAG_structure_type 240 # DW_AT_declaration 241 .quad -4149699470930386446 # DW_AT_signature 242 .byte 0 # End Of Children Mark 243.Ldebug_info_end1: 244 .section .debug_str_offsets,"",@progbits 245 .long 24 # Length of String Offsets Set 246 .short 5 247 .short 0 248.Lstr_offsets_base0: 249 .section .debug_str,"MS",@progbits,1 250.Linfo_string0: 251 .byte 0 # string offset=0 252.Linfo_string1: 253 .asciz "a.cc" # string offset=1 254.Linfo_string2: 255 .asciz "/proc/self/cwd" # string offset=6 256.Linfo_string3: 257 .asciz "_start" # string offset=21 258.Linfo_string4: 259 .asciz "t1" # string offset=28 260 .section .debug_str_offsets,"",@progbits 261 .long .Linfo_string0 262 .long .Linfo_string1 263 .long .Linfo_string2 264 .long .Linfo_string3 265 .long .Linfo_string4 266 .section .debug_addr,"",@progbits 267 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution 268.Ldebug_addr_start0: 269 .short 5 # DWARF version number 270 .byte 8 # Address size 271 .byte 0 # Segment selector size 272.Laddr_table_base0: 273 .quad .Lfunc_begin0 274.Ldebug_addr_end0: 275 .section .debug_names,"",@progbits 276 .long .Lnames_end0-.Lnames_start0 # Header: unit length 277.Lnames_start0: 278 .short 5 # Header: version 279 .short 0 # Header: padding 280 .long 1 # Header: compilation unit count 281 .long 1 # Header: local type unit count 282 .long 0 # Header: foreign type unit count 283 .long 2 # Header: bucket count 284 .long 2 # Header: name count 285 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size 286 .long 8 # Header: augmentation string size 287 .ascii "LLVM0700" # Header: augmentation string 288 .long .Lcu_begin0 # Compilation unit 0 289 .long .Ltu_begin0 # Type unit 0 290 .long 1 # Bucket 0 291 .long 0 # Bucket 1 292 .long 5863786 # Hash in Bucket 0 293 .long -304389582 # Hash in Bucket 0 294 .long .Linfo_string4 # String in Bucket 0: t1 295 .long .Linfo_string3 # String in Bucket 0: _start 296 .long .Lnames1-.Lnames_entries0 # Offset in Bucket 0 297 .long .Lnames0-.Lnames_entries0 # Offset in Bucket 0 298.Lnames_abbrev_start0: 299 .byte 1 # Abbrev code 300 .byte 19 # DW_TAG_structure_type 301 .byte 2 # DW_IDX_type_unit 302 .byte 11 # DW_FORM_data1 303 .byte 3 # DW_IDX_die_offset 304 .byte 19 # DW_FORM_ref4 305 .byte 4 # DW_IDX_parent 306 .byte 25 # DW_FORM_flag_present 307 .byte 0 # End of abbrev 308 .byte 0 # End of abbrev 309 .byte 2 # Abbrev code 310 .byte 19 # DW_TAG_structure_type 311 .byte 3 # DW_IDX_die_offset 312 .byte 19 # DW_FORM_ref4 313 .byte 4 # DW_IDX_parent 314 .byte 25 # DW_FORM_flag_present 315 .byte 0 # End of abbrev 316 .byte 0 # End of abbrev 317 .byte 3 # Abbrev code 318 .byte 46 # DW_TAG_subprogram 319 .byte 3 # DW_IDX_die_offset 320 .byte 19 # DW_FORM_ref4 321 .byte 4 # DW_IDX_parent 322 .byte 25 # DW_FORM_flag_present 323 .byte 0 # End of abbrev 324 .byte 0 # End of abbrev 325 .byte 0 # End of abbrev list 326.Lnames_abbrev_end0: 327.Lnames_entries0: 328.Lnames1: 329.L1: 330 .byte 1 # Abbreviation code 331 .byte 0 # DW_IDX_type_unit 332 .long 35 # DW_IDX_die_offset 333.L0: # DW_IDX_parent 334 .byte 2 # Abbreviation code 335 .long 54 # DW_IDX_die_offset 336 .byte 0 # DW_IDX_parent 337 # End of list: t1 338.Lnames0: 339 .byte 3 # Abbreviation code 340 .long 35 # DW_IDX_die_offset 341 .byte 0 # DW_IDX_parent 342 # End of list: _start 343 .p2align 2, 0x0 344.Lnames_end0: 345 .section ".note.GNU-stack","",@progbits 346 .addrsig 347 .section .debug_line,"",@progbits 348.Lline_table_start0: 349#--- a.foreign-tu.s 350 .text 351 .file "a.cc" 352 .globl _start # -- Begin function _start 353 .p2align 4, 0x90 354 .type _start,@function 355_start: # @_start 356.Lfunc_begin0: 357 .file 0 "/proc/self/cwd" "a.cc" md5 0x6835f89a7d36054002b51e54e47d852e 358 .cfi_startproc 359# %bb.0: # %entry 360 .loc 0 2 29 prologue_end # a.cc:2:29 361 retq 362.Ltmp0: 363.Lfunc_end0: 364 .size _start, .Lfunc_end0-_start 365 .cfi_endproc 366 # -- End function 367 .section .debug_info.dwo,"e",@progbits 368 .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit 369.Ldebug_info_dwo_start0: 370 .short 5 # DWARF version number 371 .byte 6 # DWARF Unit Type 372 .byte 8 # Address Size (in bytes) 373 .long 0 # Offset Into Abbrev. Section 374 .quad -4149699470930386446 # Type Signature 375 .long 33 # Type DIE Offset 376 .byte 1 # Abbrev [1] 0x18:0x10 DW_TAG_type_unit 377 .short 33 # DW_AT_language 378 .byte 1 # DW_AT_comp_dir 379 .byte 2 # DW_AT_dwo_name 380 .long 0 # DW_AT_stmt_list 381 .byte 2 # Abbrev [2] 0x21:0x6 DW_TAG_structure_type 382 .byte 5 # DW_AT_calling_convention 383 .byte 3 # DW_AT_name 384 .byte 1 # DW_AT_byte_size 385 .byte 0 # DW_AT_decl_file 386 .byte 1 # DW_AT_decl_line 387 .byte 0 # End Of Children Mark 388.Ldebug_info_dwo_end0: 389 .section .debug_abbrev,"",@progbits 390 .byte 1 # Abbreviation Code 391 .byte 74 # DW_TAG_skeleton_unit 392 .byte 0 # DW_CHILDREN_no 393 .byte 16 # DW_AT_stmt_list 394 .byte 23 # DW_FORM_sec_offset 395 .byte 114 # DW_AT_str_offsets_base 396 .byte 23 # DW_FORM_sec_offset 397 .byte 27 # DW_AT_comp_dir 398 .byte 37 # DW_FORM_strx1 399 .byte 118 # DW_AT_dwo_name 400 .byte 37 # DW_FORM_strx1 401 .byte 17 # DW_AT_low_pc 402 .byte 27 # DW_FORM_addrx 403 .byte 18 # DW_AT_high_pc 404 .byte 6 # DW_FORM_data4 405 .byte 115 # DW_AT_addr_base 406 .byte 23 # DW_FORM_sec_offset 407 .byte 0 # EOM(1) 408 .byte 0 # EOM(2) 409 .byte 0 # EOM(3) 410 .section .debug_info,"",@progbits 411.Lcu_begin0: 412 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit 413.Ldebug_info_start0: 414 .short 5 # DWARF version number 415 .byte 4 # DWARF Unit Type 416 .byte 8 # Address Size (in bytes) 417 .long .debug_abbrev # Offset Into Abbrev. Section 418 .quad -2763464185488304260 419 .byte 1 # Abbrev [1] 0x14:0x14 DW_TAG_skeleton_unit 420 .long .Lline_table_start0 # DW_AT_stmt_list 421 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 422 .byte 0 # DW_AT_comp_dir 423 .byte 1 # DW_AT_dwo_name 424 .byte 0 # DW_AT_low_pc 425 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 426 .long .Laddr_table_base0 # DW_AT_addr_base 427.Ldebug_info_end0: 428 .section .debug_str_offsets,"",@progbits 429 .long 12 # Length of String Offsets Set 430 .short 5 431 .short 0 432.Lstr_offsets_base0: 433 .section .debug_str,"MS",@progbits,1 434.Lskel_string0: 435 .asciz "/proc/self/cwd" # string offset=0 436.Lskel_string1: 437 .asciz "_start" # string offset=15 438.Lskel_string2: 439 .asciz "t1" # string offset=22 440.Lskel_string3: 441 .asciz "a.dwo" # string offset=25 442 .section .debug_str_offsets,"",@progbits 443 .long .Lskel_string0 444 .long .Lskel_string3 445 .section .debug_str_offsets.dwo,"e",@progbits 446 .long 28 # Length of String Offsets Set 447 .short 5 448 .short 0 449 .section .debug_str.dwo,"eMS",@progbits,1 450.Linfo_string0: 451 .asciz "_start" # string offset=0 452.Linfo_string1: 453 .asciz "/proc/self/cwd" # string offset=7 454.Linfo_string2: 455 .asciz "a.dwo" # string offset=22 456.Linfo_string3: 457 .asciz "t1" # string offset=28 458.Linfo_string4: 459 .byte 0 # string offset=31 460.Linfo_string5: 461 .asciz "a.cc" # string offset=32 462 .section .debug_str_offsets.dwo,"e",@progbits 463 .long 0 464 .long 7 465 .long 22 466 .long 28 467 .long 31 468 .long 32 469 .section .debug_info.dwo,"e",@progbits 470 .long .Ldebug_info_dwo_end1-.Ldebug_info_dwo_start1 # Length of Unit 471.Ldebug_info_dwo_start1: 472 .short 5 # DWARF version number 473 .byte 5 # DWARF Unit Type 474 .byte 8 # Address Size (in bytes) 475 .long 0 # Offset Into Abbrev. Section 476 .quad -2763464185488304260 477 .byte 3 # Abbrev [3] 0x14:0x23 DW_TAG_compile_unit 478 .byte 4 # DW_AT_producer 479 .short 33 # DW_AT_language 480 .byte 5 # DW_AT_name 481 .byte 2 # DW_AT_dwo_name 482 .byte 4 # Abbrev [4] 0x1a:0x13 DW_TAG_subprogram 483 .byte 0 # DW_AT_low_pc 484 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 485 .byte 1 # DW_AT_frame_base 486 .byte 87 487 # DW_AT_call_all_calls 488 .byte 0 # DW_AT_name 489 .byte 0 # DW_AT_decl_file 490 .byte 2 # DW_AT_decl_line 491 # DW_AT_external 492 .byte 5 # Abbrev [5] 0x25:0x7 DW_TAG_formal_parameter 493 .byte 0 # DW_AT_decl_file 494 .byte 2 # DW_AT_decl_line 495 .long 45 # DW_AT_type 496 .byte 0 # End Of Children Mark 497 .byte 6 # Abbrev [6] 0x2d:0x9 DW_TAG_structure_type 498 # DW_AT_declaration 499 .quad -4149699470930386446 # DW_AT_signature 500 .byte 0 # End Of Children Mark 501.Ldebug_info_dwo_end1: 502 .section .debug_abbrev.dwo,"e",@progbits 503 .byte 1 # Abbreviation Code 504 .byte 65 # DW_TAG_type_unit 505 .byte 1 # DW_CHILDREN_yes 506 .byte 19 # DW_AT_language 507 .byte 5 # DW_FORM_data2 508 .byte 27 # DW_AT_comp_dir 509 .byte 37 # DW_FORM_strx1 510 .byte 118 # DW_AT_dwo_name 511 .byte 37 # DW_FORM_strx1 512 .byte 16 # DW_AT_stmt_list 513 .byte 23 # DW_FORM_sec_offset 514 .byte 0 # EOM(1) 515 .byte 0 # EOM(2) 516 .byte 2 # Abbreviation Code 517 .byte 19 # DW_TAG_structure_type 518 .byte 0 # DW_CHILDREN_no 519 .byte 54 # DW_AT_calling_convention 520 .byte 11 # DW_FORM_data1 521 .byte 3 # DW_AT_name 522 .byte 37 # DW_FORM_strx1 523 .byte 11 # DW_AT_byte_size 524 .byte 11 # DW_FORM_data1 525 .byte 58 # DW_AT_decl_file 526 .byte 11 # DW_FORM_data1 527 .byte 59 # DW_AT_decl_line 528 .byte 11 # DW_FORM_data1 529 .byte 0 # EOM(1) 530 .byte 0 # EOM(2) 531 .byte 3 # Abbreviation Code 532 .byte 17 # DW_TAG_compile_unit 533 .byte 1 # DW_CHILDREN_yes 534 .byte 37 # DW_AT_producer 535 .byte 37 # DW_FORM_strx1 536 .byte 19 # DW_AT_language 537 .byte 5 # DW_FORM_data2 538 .byte 3 # DW_AT_name 539 .byte 37 # DW_FORM_strx1 540 .byte 118 # DW_AT_dwo_name 541 .byte 37 # DW_FORM_strx1 542 .byte 0 # EOM(1) 543 .byte 0 # EOM(2) 544 .byte 4 # Abbreviation Code 545 .byte 46 # DW_TAG_subprogram 546 .byte 1 # DW_CHILDREN_yes 547 .byte 17 # DW_AT_low_pc 548 .byte 27 # DW_FORM_addrx 549 .byte 18 # DW_AT_high_pc 550 .byte 6 # DW_FORM_data4 551 .byte 64 # DW_AT_frame_base 552 .byte 24 # DW_FORM_exprloc 553 .byte 122 # DW_AT_call_all_calls 554 .byte 25 # DW_FORM_flag_present 555 .byte 3 # DW_AT_name 556 .byte 37 # DW_FORM_strx1 557 .byte 58 # DW_AT_decl_file 558 .byte 11 # DW_FORM_data1 559 .byte 59 # DW_AT_decl_line 560 .byte 11 # DW_FORM_data1 561 .byte 63 # DW_AT_external 562 .byte 25 # DW_FORM_flag_present 563 .byte 0 # EOM(1) 564 .byte 0 # EOM(2) 565 .byte 5 # Abbreviation Code 566 .byte 5 # DW_TAG_formal_parameter 567 .byte 0 # DW_CHILDREN_no 568 .byte 58 # DW_AT_decl_file 569 .byte 11 # DW_FORM_data1 570 .byte 59 # DW_AT_decl_line 571 .byte 11 # DW_FORM_data1 572 .byte 73 # DW_AT_type 573 .byte 19 # DW_FORM_ref4 574 .byte 0 # EOM(1) 575 .byte 0 # EOM(2) 576 .byte 6 # Abbreviation Code 577 .byte 19 # DW_TAG_structure_type 578 .byte 0 # DW_CHILDREN_no 579 .byte 60 # DW_AT_declaration 580 .byte 25 # DW_FORM_flag_present 581 .byte 105 # DW_AT_signature 582 .byte 32 # DW_FORM_ref_sig8 583 .byte 0 # EOM(1) 584 .byte 0 # EOM(2) 585 .byte 0 # EOM(3) 586 .section .debug_line.dwo,"e",@progbits 587.Ltmp1: 588 .long .Ldebug_line_end0-.Ldebug_line_start0 # unit length 589.Ldebug_line_start0: 590 .short 5 591 .byte 8 592 .byte 0 593 .long .Lprologue_end0-.Lprologue_start0 594.Lprologue_start0: 595 .byte 1 596 .byte 1 597 .byte 1 598 .byte -5 599 .byte 14 600 .byte 1 601 .byte 1 602 .byte 1 603 .byte 8 604 .byte 1 605 .ascii "/proc/self/cwd" 606 .byte 0 607 .byte 3 608 .byte 1 609 .byte 8 610 .byte 2 611 .byte 15 612 .byte 5 613 .byte 30 614 .byte 1 615 .ascii "a.cc" 616 .byte 0 617 .byte 0 618 .byte 0x68, 0x35, 0xf8, 0x9a 619 .byte 0x7d, 0x36, 0x05, 0x40 620 .byte 0x02, 0xb5, 0x1e, 0x54 621 .byte 0xe4, 0x7d, 0x85, 0x2e 622.Lprologue_end0: 623.Ldebug_line_end0: 624 .section .debug_addr,"",@progbits 625 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution 626.Ldebug_addr_start0: 627 .short 5 # DWARF version number 628 .byte 8 # Address size 629 .byte 0 # Segment selector size 630.Laddr_table_base0: 631 .quad .Lfunc_begin0 632.Ldebug_addr_end0: 633 .section .debug_names,"",@progbits 634 .long .Lnames_end0-.Lnames_start0 # Header: unit length 635.Lnames_start0: 636 .short 5 # Header: version 637 .short 0 # Header: padding 638 .long 1 # Header: compilation unit count 639 .long 0 # Header: local type unit count 640 .long 1 # Header: foreign type unit count 641 .long 2 # Header: bucket count 642 .long 2 # Header: name count 643 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size 644 .long 8 # Header: augmentation string size 645 .ascii "LLVM0700" # Header: augmentation string 646 .long .Lcu_begin0 # Compilation unit 0 647 .quad -4149699470930386446 # Type unit 0 648 .long 1 # Bucket 0 649 .long 0 # Bucket 1 650 .long 5863786 # Hash in Bucket 0 651 .long -304389582 # Hash in Bucket 0 652 .long .Lskel_string2 # String in Bucket 0: t1 653 .long .Lskel_string1 # String in Bucket 0: _start 654 .long .Lnames1-.Lnames_entries0 # Offset in Bucket 0 655 .long .Lnames0-.Lnames_entries0 # Offset in Bucket 0 656.Lnames_abbrev_start0: 657 .byte 1 # Abbrev code 658 .byte 19 # DW_TAG_structure_type 659 .byte 2 # DW_IDX_type_unit 660 .byte 11 # DW_FORM_data1 661 .byte 3 # DW_IDX_die_offset 662 .byte 19 # DW_FORM_ref4 663 .byte 4 # DW_IDX_parent 664 .byte 25 # DW_FORM_flag_present 665 .byte 0 # End of abbrev 666 .byte 0 # End of abbrev 667 .byte 2 # Abbrev code 668 .byte 19 # DW_TAG_structure_type 669 .byte 3 # DW_IDX_die_offset 670 .byte 19 # DW_FORM_ref4 671 .byte 4 # DW_IDX_parent 672 .byte 25 # DW_FORM_flag_present 673 .byte 0 # End of abbrev 674 .byte 0 # End of abbrev 675 .byte 3 # Abbrev code 676 .byte 46 # DW_TAG_subprogram 677 .byte 3 # DW_IDX_die_offset 678 .byte 19 # DW_FORM_ref4 679 .byte 4 # DW_IDX_parent 680 .byte 25 # DW_FORM_flag_present 681 .byte 0 # End of abbrev 682 .byte 0 # End of abbrev 683 .byte 0 # End of abbrev list 684.Lnames_abbrev_end0: 685.Lnames_entries0: 686.Lnames1: 687.L2: 688 .byte 1 # Abbreviation code 689 .byte 0 # DW_IDX_type_unit 690 .long 33 # DW_IDX_die_offset 691.L1: # DW_IDX_parent 692 .byte 2 # Abbreviation code 693 .long 45 # DW_IDX_die_offset 694 .byte 0 # DW_IDX_parent 695 # End of list: t1 696.Lnames0: 697.L0: 698 .byte 3 # Abbreviation code 699 .long 26 # DW_IDX_die_offset 700 .byte 0 # DW_IDX_parent 701 # End of list: _start 702 .p2align 2, 0x0 703.Lnames_end0: 704 .section ".note.GNU-stack","",@progbits 705 .addrsig 706 .section .debug_line,"",@progbits 707.Lline_table_start0: 708#--- b.s 709 .text 710 .file "b.cc" 711 .file 0 "/proc/self/cwd" "b.cc" md5 0xe69190c4224a66c796605e3a1324674b 712 .type vb,@object # @vb 713 .bss 714 .globl vb 715vb: 716 .zero 1 717 .size vb, 1 718 719 .section .debug_abbrev,"",@progbits 720 .byte 1 # Abbreviation Code 721 .byte 17 # DW_TAG_compile_unit 722 .byte 1 # DW_CHILDREN_yes 723 .byte 37 # DW_AT_producer 724 .byte 37 # DW_FORM_strx1 725 .byte 19 # DW_AT_language 726 .byte 5 # DW_FORM_data2 727 .byte 3 # DW_AT_name 728 .byte 37 # DW_FORM_strx1 729 .byte 114 # DW_AT_str_offsets_base 730 .byte 23 # DW_FORM_sec_offset 731 .byte 16 # DW_AT_stmt_list 732 .byte 23 # DW_FORM_sec_offset 733 .byte 27 # DW_AT_comp_dir 734 .byte 37 # DW_FORM_strx1 735 .byte 115 # DW_AT_addr_base 736 .byte 23 # DW_FORM_sec_offset 737 .byte 0 # EOM(1) 738 .byte 0 # EOM(2) 739 .byte 2 # Abbreviation Code 740 .byte 52 # DW_TAG_variable 741 .byte 0 # DW_CHILDREN_no 742 .byte 3 # DW_AT_name 743 .byte 37 # DW_FORM_strx1 744 .byte 73 # DW_AT_type 745 .byte 19 # DW_FORM_ref4 746 .byte 63 # DW_AT_external 747 .byte 25 # DW_FORM_flag_present 748 .byte 58 # DW_AT_decl_file 749 .byte 11 # DW_FORM_data1 750 .byte 59 # DW_AT_decl_line 751 .byte 11 # DW_FORM_data1 752 .byte 2 # DW_AT_location 753 .byte 24 # DW_FORM_exprloc 754 .byte 0 # EOM(1) 755 .byte 0 # EOM(2) 756 .byte 3 # Abbreviation Code 757 .byte 19 # DW_TAG_structure_type 758 .byte 0 # DW_CHILDREN_no 759 .byte 54 # DW_AT_calling_convention 760 .byte 11 # DW_FORM_data1 761 .byte 3 # DW_AT_name 762 .byte 37 # DW_FORM_strx1 763 .byte 11 # DW_AT_byte_size 764 .byte 11 # DW_FORM_data1 765 .byte 58 # DW_AT_decl_file 766 .byte 11 # DW_FORM_data1 767 .byte 59 # DW_AT_decl_line 768 .byte 11 # DW_FORM_data1 769 .byte 0 # EOM(1) 770 .byte 0 # EOM(2) 771 .byte 0 # EOM(3) 772 .section .debug_info,"",@progbits 773.Lcu_begin0: 774 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit 775.Ldebug_info_start0: 776 .short 5 # DWARF version number 777 .byte 1 # DWARF Unit Type 778 .byte 8 # Address Size (in bytes) 779 .long .debug_abbrev # Offset Into Abbrev. Section 780 .byte 1 # Abbrev [1] 0xc:0x24 DW_TAG_compile_unit 781 .byte 0 # DW_AT_producer 782 .short 33 # DW_AT_language 783 .byte 1 # DW_AT_name 784 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 785 .long .Lline_table_start0 # DW_AT_stmt_list 786 .byte 2 # DW_AT_comp_dir 787 .long .Laddr_table_base0 # DW_AT_addr_base 788 .byte 2 # Abbrev [2] 0x1e:0xb DW_TAG_variable 789 .byte 3 # DW_AT_name 790 .long 41 # DW_AT_type 791 # DW_AT_external 792 .byte 0 # DW_AT_decl_file 793 .byte 1 # DW_AT_decl_line 794 .byte 2 # DW_AT_location 795 .byte 161 796 .byte 0 797 .byte 3 # Abbrev [3] 0x29:0x6 DW_TAG_structure_type 798 .byte 5 # DW_AT_calling_convention 799 .byte 4 # DW_AT_name 800 .byte 1 # DW_AT_byte_size 801 .byte 0 # DW_AT_decl_file 802 .byte 1 # DW_AT_decl_line 803 .byte 0 # End Of Children Mark 804.Ldebug_info_end0: 805 .section .debug_str_offsets,"",@progbits 806 .long 24 # Length of String Offsets Set 807 .short 5 808 .short 0 809.Lstr_offsets_base0: 810 .section .debug_str,"MS",@progbits,1 811.Linfo_string0: 812 .byte 0 # string offset=0 813.Linfo_string1: 814 .asciz "b.cc" # string offset=1 815.Linfo_string2: 816 .asciz "/proc/self/cwd" # string offset=6 817.Linfo_string3: 818 .asciz "vb" # string offset=21 819.Linfo_string4: 820 .asciz "t1" # string offset=24 821 .section .debug_str_offsets,"",@progbits 822 .long .Linfo_string0 823 .long .Linfo_string1 824 .long .Linfo_string2 825 .long .Linfo_string3 826 .long .Linfo_string4 827 .section .debug_addr,"",@progbits 828 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution 829.Ldebug_addr_start0: 830 .short 5 # DWARF version number 831 .byte 8 # Address size 832 .byte 0 # Segment selector size 833.Laddr_table_base0: 834 .quad vb 835.Ldebug_addr_end0: 836 .section .debug_names,"",@progbits 837 .long .Lnames_end0-.Lnames_start0 # Header: unit length 838.Lnames_start0: 839 .short 5 # Header: version 840 .short 0 # Header: padding 841 .long 1 # Header: compilation unit count 842 .long 0 # Header: local type unit count 843 .long 0 # Header: foreign type unit count 844 .long 2 # Header: bucket count 845 .long 2 # Header: name count 846 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size 847 .long 8 # Header: augmentation string size 848 .ascii "LLVM0700" # Header: augmentation string 849 .long .Lcu_begin0 # Compilation unit 0 850 .long 1 # Bucket 0 851 .long 2 # Bucket 1 852 .long 5863786 # Hash in Bucket 0 853 .long 5863901 # Hash in Bucket 1 854 .long .Linfo_string4 # String in Bucket 0: t1 855 .long .Linfo_string3 # String in Bucket 1: vb 856 .long .Lnames0-.Lnames_entries0 # Offset in Bucket 0 857 .long .Lnames1-.Lnames_entries0 # Offset in Bucket 1 858.Lnames_abbrev_start0: 859 .byte 1 # Abbrev code 860 .byte 19 # DW_TAG_structure_type 861 .byte 3 # DW_IDX_die_offset 862 .byte 19 # DW_FORM_ref4 863 .byte 4 # DW_IDX_parent 864 .byte 25 # DW_FORM_flag_present 865 .byte 0 # End of abbrev 866 .byte 0 # End of abbrev 867 .byte 2 # Abbrev code 868 .byte 52 # DW_TAG_variable 869 .byte 3 # DW_IDX_die_offset 870 .byte 19 # DW_FORM_ref4 871 .byte 4 # DW_IDX_parent 872 .byte 25 # DW_FORM_flag_present 873 .byte 0 # End of abbrev 874 .byte 0 # End of abbrev 875 .byte 0 # End of abbrev list 876.Lnames_abbrev_end0: 877.Lnames_entries0: 878.Lnames0: 879.L1: 880 .byte 1 # Abbreviation code 881 .long 41 # DW_IDX_die_offset 882 .byte 0 # DW_IDX_parent 883 # End of list: t1 884.Lnames1: 885.L0: 886 .byte 2 # Abbreviation code 887 .long 30 # DW_IDX_die_offset 888 .byte 0 # DW_IDX_parent 889 # End of list: vb 890 .p2align 2, 0x0 891.Lnames_end0: 892 .section ".note.GNU-stack","",@progbits 893 .addrsig 894 .section .debug_line,"",@progbits 895.Lline_table_start0: 896