896 lines · plain
1# REQUIRES: x862# RUN: rm -rf %t && split-file %s %t && cd %t3# RUN: llvm-mc -filetype=obj -triple=x86_64 a.tu.s -o a.tu.o4# RUN: llvm-mc -filetype=obj -triple=x86_64 a.foreign-tu.s -o a.foreign-tu.o5# RUN: llvm-mc -filetype=obj -triple=x86_64 b.s -o b.o6 7# RUN: ld.lld --debug-names a.tu.o b.o -o out0 2>&1 | FileCheck --check-prefix=WARN %s8# RUN: llvm-dwarfdump --debug-names out0 | FileCheck --check-prefix=DWARF %s9 10# WARN: warning: a.tu.o:(.debug_names): type units are not implemented11 12# DWARF: CU count: 213# DWARF-NEXT: Local TU count: 014# DWARF-NEXT: Foreign TU count: 015# DWARF: Compilation Unit offsets [16# DWARF-NEXT: CU[0]:17# DWARF-SAME: 0x0000002a18# DWARF-NEXT: CU[1]:19# DWARF-SAME: 0x0000006a20# DWARF-NEXT: ]21# DWARF: String: {{.*}} "t1"22# DWARF-NEXT: Entry @ 0x8f {23# DWARF-NEXT: Abbrev: 0x224# DWARF-NEXT: Tag: DW_TAG_structure_type25# DWARF-NEXT: DW_IDX_type_unit: 0x0026# DWARF-NEXT: DW_IDX_die_offset: 0x0000002327# DWARF-NEXT: DW_IDX_parent: <parent not indexed>28# DWARF-NEXT: DW_IDX_compile_unit: 0x0029# DWARF-NEXT: }30# DWARF-NEXT: Entry @ 0x96 {31# DWARF-NEXT: Abbrev: 0x132# DWARF-NEXT: Tag: DW_TAG_structure_type33# DWARF-NEXT: DW_IDX_die_offset: 0x0000003634# DWARF-NEXT: DW_IDX_parent: <parent not indexed>35# DWARF-NEXT: DW_IDX_compile_unit: 0x0036# DWARF-NEXT: }37# DWARF-NEXT: Entry @ 0x9c {38# DWARF-NEXT: Abbrev: 0x139# DWARF-NEXT: Tag: DW_TAG_structure_type40# DWARF-NEXT: DW_IDX_die_offset: 0x0000002941# DWARF-NEXT: DW_IDX_parent: <parent not indexed>42# DWARF-NEXT: DW_IDX_compile_unit: 0x0143# DWARF-NEXT: }44 45# RUN: ld.lld --debug-names a.foreign-tu.o b.o -o out1 2>&1 | FileCheck %s --check-prefix=WARN246# RUN: llvm-dwarfdump --debug-names out1 | FileCheck --check-prefix=DWARF2 %s47 48# WARN2: warning: a.foreign-tu.o:(.debug_names): type units are not implemented49 50# DWARF2: CU count: 251# DWARF2-NEXT: Local TU count: 052# DWARF2-NEXT: Foreign TU count: 053# DWARF2: Compilation Unit offsets [54# DWARF2-NEXT: CU[0]:55# DWARF2-SAME: 0x0000000056# DWARF2-NEXT: CU[1]:57# DWARF2-SAME: 0x0000002858# DWARF2-NEXT: ]59 60.ifdef GEN61#--- a.cc62struct t1 {};63extern "C" void _start(t1) {}64#--- b.cc65struct t1 { } vb;66#--- gen67echo '#--- 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.endif74#--- a.tu.s75 .text76 .file "a.cc"77 .globl _start # -- Begin function _start78 .p2align 4, 0x9079 .type _start,@function80_start: # @_start81.Lfunc_begin0:82 .file 0 "/proc/self/cwd" "a.cc" md5 0x6835f89a7d36054002b51e54e47d852e83 .cfi_startproc84# %bb.0: # %entry85 .loc 0 2 29 prologue_end # a.cc:2:2986 retq87.Ltmp0:88.Lfunc_end0:89 .size _start, .Lfunc_end0-_start90 .cfi_endproc91 # -- End function92 .section .debug_info,"G",@progbits,14297044602779165170,comdat93.Ltu_begin0:94 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit95.Ldebug_info_start0:96 .short 5 # DWARF version number97 .byte 2 # DWARF Unit Type98 .byte 8 # Address Size (in bytes)99 .long .debug_abbrev # Offset Into Abbrev. Section100 .quad -4149699470930386446 # Type Signature101 .long 35 # Type DIE Offset102 .byte 1 # Abbrev [1] 0x18:0x12 DW_TAG_type_unit103 .short 33 # DW_AT_language104 .long .Lline_table_start0 # DW_AT_stmt_list105 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base106 .byte 2 # Abbrev [2] 0x23:0x6 DW_TAG_structure_type107 .byte 5 # DW_AT_calling_convention108 .byte 4 # DW_AT_name109 .byte 1 # DW_AT_byte_size110 .byte 0 # DW_AT_decl_file111 .byte 1 # DW_AT_decl_line112 .byte 0 # End Of Children Mark113.Ldebug_info_end0:114 .section .debug_abbrev,"",@progbits115 .byte 1 # Abbreviation Code116 .byte 65 # DW_TAG_type_unit117 .byte 1 # DW_CHILDREN_yes118 .byte 19 # DW_AT_language119 .byte 5 # DW_FORM_data2120 .byte 16 # DW_AT_stmt_list121 .byte 23 # DW_FORM_sec_offset122 .byte 114 # DW_AT_str_offsets_base123 .byte 23 # DW_FORM_sec_offset124 .byte 0 # EOM(1)125 .byte 0 # EOM(2)126 .byte 2 # Abbreviation Code127 .byte 19 # DW_TAG_structure_type128 .byte 0 # DW_CHILDREN_no129 .byte 54 # DW_AT_calling_convention130 .byte 11 # DW_FORM_data1131 .byte 3 # DW_AT_name132 .byte 37 # DW_FORM_strx1133 .byte 11 # DW_AT_byte_size134 .byte 11 # DW_FORM_data1135 .byte 58 # DW_AT_decl_file136 .byte 11 # DW_FORM_data1137 .byte 59 # DW_AT_decl_line138 .byte 11 # DW_FORM_data1139 .byte 0 # EOM(1)140 .byte 0 # EOM(2)141 .byte 3 # Abbreviation Code142 .byte 17 # DW_TAG_compile_unit143 .byte 1 # DW_CHILDREN_yes144 .byte 37 # DW_AT_producer145 .byte 37 # DW_FORM_strx1146 .byte 19 # DW_AT_language147 .byte 5 # DW_FORM_data2148 .byte 3 # DW_AT_name149 .byte 37 # DW_FORM_strx1150 .byte 114 # DW_AT_str_offsets_base151 .byte 23 # DW_FORM_sec_offset152 .byte 16 # DW_AT_stmt_list153 .byte 23 # DW_FORM_sec_offset154 .byte 27 # DW_AT_comp_dir155 .byte 37 # DW_FORM_strx1156 .byte 17 # DW_AT_low_pc157 .byte 27 # DW_FORM_addrx158 .byte 18 # DW_AT_high_pc159 .byte 6 # DW_FORM_data4160 .byte 115 # DW_AT_addr_base161 .byte 23 # DW_FORM_sec_offset162 .byte 0 # EOM(1)163 .byte 0 # EOM(2)164 .byte 4 # Abbreviation Code165 .byte 46 # DW_TAG_subprogram166 .byte 1 # DW_CHILDREN_yes167 .byte 17 # DW_AT_low_pc168 .byte 27 # DW_FORM_addrx169 .byte 18 # DW_AT_high_pc170 .byte 6 # DW_FORM_data4171 .byte 64 # DW_AT_frame_base172 .byte 24 # DW_FORM_exprloc173 .byte 122 # DW_AT_call_all_calls174 .byte 25 # DW_FORM_flag_present175 .byte 3 # DW_AT_name176 .byte 37 # DW_FORM_strx1177 .byte 58 # DW_AT_decl_file178 .byte 11 # DW_FORM_data1179 .byte 59 # DW_AT_decl_line180 .byte 11 # DW_FORM_data1181 .byte 63 # DW_AT_external182 .byte 25 # DW_FORM_flag_present183 .byte 0 # EOM(1)184 .byte 0 # EOM(2)185 .byte 5 # Abbreviation Code186 .byte 5 # DW_TAG_formal_parameter187 .byte 0 # DW_CHILDREN_no188 .byte 58 # DW_AT_decl_file189 .byte 11 # DW_FORM_data1190 .byte 59 # DW_AT_decl_line191 .byte 11 # DW_FORM_data1192 .byte 73 # DW_AT_type193 .byte 19 # DW_FORM_ref4194 .byte 0 # EOM(1)195 .byte 0 # EOM(2)196 .byte 6 # Abbreviation Code197 .byte 19 # DW_TAG_structure_type198 .byte 0 # DW_CHILDREN_no199 .byte 60 # DW_AT_declaration200 .byte 25 # DW_FORM_flag_present201 .byte 105 # DW_AT_signature202 .byte 32 # DW_FORM_ref_sig8203 .byte 0 # EOM(1)204 .byte 0 # EOM(2)205 .byte 0 # EOM(3)206 .section .debug_info,"",@progbits207.Lcu_begin0:208 .long .Ldebug_info_end1-.Ldebug_info_start1 # Length of Unit209.Ldebug_info_start1:210 .short 5 # DWARF version number211 .byte 1 # DWARF Unit Type212 .byte 8 # Address Size (in bytes)213 .long .debug_abbrev # Offset Into Abbrev. Section214 .byte 3 # Abbrev [3] 0xc:0x34 DW_TAG_compile_unit215 .byte 0 # DW_AT_producer216 .short 33 # DW_AT_language217 .byte 1 # DW_AT_name218 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base219 .long .Lline_table_start0 # DW_AT_stmt_list220 .byte 2 # DW_AT_comp_dir221 .byte 0 # DW_AT_low_pc222 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc223 .long .Laddr_table_base0 # DW_AT_addr_base224 .byte 4 # Abbrev [4] 0x23:0x13 DW_TAG_subprogram225 .byte 0 # DW_AT_low_pc226 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc227 .byte 1 # DW_AT_frame_base228 .byte 87229 # DW_AT_call_all_calls230 .byte 3 # DW_AT_name231 .byte 0 # DW_AT_decl_file232 .byte 2 # DW_AT_decl_line233 # DW_AT_external234 .byte 5 # Abbrev [5] 0x2e:0x7 DW_TAG_formal_parameter235 .byte 0 # DW_AT_decl_file236 .byte 2 # DW_AT_decl_line237 .long 54 # DW_AT_type238 .byte 0 # End Of Children Mark239 .byte 6 # Abbrev [6] 0x36:0x9 DW_TAG_structure_type240 # DW_AT_declaration241 .quad -4149699470930386446 # DW_AT_signature242 .byte 0 # End Of Children Mark243.Ldebug_info_end1:244 .section .debug_str_offsets,"",@progbits245 .long 24 # Length of String Offsets Set246 .short 5247 .short 0248.Lstr_offsets_base0:249 .section .debug_str,"MS",@progbits,1250.Linfo_string0:251 .byte 0 # string offset=0252.Linfo_string1:253 .asciz "a.cc" # string offset=1254.Linfo_string2:255 .asciz "/proc/self/cwd" # string offset=6256.Linfo_string3:257 .asciz "_start" # string offset=21258.Linfo_string4:259 .asciz "t1" # string offset=28260 .section .debug_str_offsets,"",@progbits261 .long .Linfo_string0262 .long .Linfo_string1263 .long .Linfo_string2264 .long .Linfo_string3265 .long .Linfo_string4266 .section .debug_addr,"",@progbits267 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution268.Ldebug_addr_start0:269 .short 5 # DWARF version number270 .byte 8 # Address size271 .byte 0 # Segment selector size272.Laddr_table_base0:273 .quad .Lfunc_begin0274.Ldebug_addr_end0:275 .section .debug_names,"",@progbits276 .long .Lnames_end0-.Lnames_start0 # Header: unit length277.Lnames_start0:278 .short 5 # Header: version279 .short 0 # Header: padding280 .long 1 # Header: compilation unit count281 .long 1 # Header: local type unit count282 .long 0 # Header: foreign type unit count283 .long 2 # Header: bucket count284 .long 2 # Header: name count285 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size286 .long 8 # Header: augmentation string size287 .ascii "LLVM0700" # Header: augmentation string288 .long .Lcu_begin0 # Compilation unit 0289 .long .Ltu_begin0 # Type unit 0290 .long 1 # Bucket 0291 .long 0 # Bucket 1292 .long 5863786 # Hash in Bucket 0293 .long -304389582 # Hash in Bucket 0294 .long .Linfo_string4 # String in Bucket 0: t1295 .long .Linfo_string3 # String in Bucket 0: _start296 .long .Lnames1-.Lnames_entries0 # Offset in Bucket 0297 .long .Lnames0-.Lnames_entries0 # Offset in Bucket 0298.Lnames_abbrev_start0:299 .byte 1 # Abbrev code300 .byte 19 # DW_TAG_structure_type301 .byte 2 # DW_IDX_type_unit302 .byte 11 # DW_FORM_data1303 .byte 3 # DW_IDX_die_offset304 .byte 19 # DW_FORM_ref4305 .byte 4 # DW_IDX_parent306 .byte 25 # DW_FORM_flag_present307 .byte 0 # End of abbrev308 .byte 0 # End of abbrev309 .byte 2 # Abbrev code310 .byte 19 # DW_TAG_structure_type311 .byte 3 # DW_IDX_die_offset312 .byte 19 # DW_FORM_ref4313 .byte 4 # DW_IDX_parent314 .byte 25 # DW_FORM_flag_present315 .byte 0 # End of abbrev316 .byte 0 # End of abbrev317 .byte 3 # Abbrev code318 .byte 46 # DW_TAG_subprogram319 .byte 3 # DW_IDX_die_offset320 .byte 19 # DW_FORM_ref4321 .byte 4 # DW_IDX_parent322 .byte 25 # DW_FORM_flag_present323 .byte 0 # End of abbrev324 .byte 0 # End of abbrev325 .byte 0 # End of abbrev list326.Lnames_abbrev_end0:327.Lnames_entries0:328.Lnames1:329.L1:330 .byte 1 # Abbreviation code331 .byte 0 # DW_IDX_type_unit332 .long 35 # DW_IDX_die_offset333.L0: # DW_IDX_parent334 .byte 2 # Abbreviation code335 .long 54 # DW_IDX_die_offset336 .byte 0 # DW_IDX_parent337 # End of list: t1338.Lnames0:339 .byte 3 # Abbreviation code340 .long 35 # DW_IDX_die_offset341 .byte 0 # DW_IDX_parent342 # End of list: _start343 .p2align 2, 0x0344.Lnames_end0:345 .section ".note.GNU-stack","",@progbits346 .addrsig347 .section .debug_line,"",@progbits348.Lline_table_start0:349#--- a.foreign-tu.s350 .text351 .file "a.cc"352 .globl _start # -- Begin function _start353 .p2align 4, 0x90354 .type _start,@function355_start: # @_start356.Lfunc_begin0:357 .file 0 "/proc/self/cwd" "a.cc" md5 0x6835f89a7d36054002b51e54e47d852e358 .cfi_startproc359# %bb.0: # %entry360 .loc 0 2 29 prologue_end # a.cc:2:29361 retq362.Ltmp0:363.Lfunc_end0:364 .size _start, .Lfunc_end0-_start365 .cfi_endproc366 # -- End function367 .section .debug_info.dwo,"e",@progbits368 .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit369.Ldebug_info_dwo_start0:370 .short 5 # DWARF version number371 .byte 6 # DWARF Unit Type372 .byte 8 # Address Size (in bytes)373 .long 0 # Offset Into Abbrev. Section374 .quad -4149699470930386446 # Type Signature375 .long 33 # Type DIE Offset376 .byte 1 # Abbrev [1] 0x18:0x10 DW_TAG_type_unit377 .short 33 # DW_AT_language378 .byte 1 # DW_AT_comp_dir379 .byte 2 # DW_AT_dwo_name380 .long 0 # DW_AT_stmt_list381 .byte 2 # Abbrev [2] 0x21:0x6 DW_TAG_structure_type382 .byte 5 # DW_AT_calling_convention383 .byte 3 # DW_AT_name384 .byte 1 # DW_AT_byte_size385 .byte 0 # DW_AT_decl_file386 .byte 1 # DW_AT_decl_line387 .byte 0 # End Of Children Mark388.Ldebug_info_dwo_end0:389 .section .debug_abbrev,"",@progbits390 .byte 1 # Abbreviation Code391 .byte 74 # DW_TAG_skeleton_unit392 .byte 0 # DW_CHILDREN_no393 .byte 16 # DW_AT_stmt_list394 .byte 23 # DW_FORM_sec_offset395 .byte 114 # DW_AT_str_offsets_base396 .byte 23 # DW_FORM_sec_offset397 .byte 27 # DW_AT_comp_dir398 .byte 37 # DW_FORM_strx1399 .byte 118 # DW_AT_dwo_name400 .byte 37 # DW_FORM_strx1401 .byte 17 # DW_AT_low_pc402 .byte 27 # DW_FORM_addrx403 .byte 18 # DW_AT_high_pc404 .byte 6 # DW_FORM_data4405 .byte 115 # DW_AT_addr_base406 .byte 23 # DW_FORM_sec_offset407 .byte 0 # EOM(1)408 .byte 0 # EOM(2)409 .byte 0 # EOM(3)410 .section .debug_info,"",@progbits411.Lcu_begin0:412 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit413.Ldebug_info_start0:414 .short 5 # DWARF version number415 .byte 4 # DWARF Unit Type416 .byte 8 # Address Size (in bytes)417 .long .debug_abbrev # Offset Into Abbrev. Section418 .quad -2763464185488304260419 .byte 1 # Abbrev [1] 0x14:0x14 DW_TAG_skeleton_unit420 .long .Lline_table_start0 # DW_AT_stmt_list421 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base422 .byte 0 # DW_AT_comp_dir423 .byte 1 # DW_AT_dwo_name424 .byte 0 # DW_AT_low_pc425 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc426 .long .Laddr_table_base0 # DW_AT_addr_base427.Ldebug_info_end0:428 .section .debug_str_offsets,"",@progbits429 .long 12 # Length of String Offsets Set430 .short 5431 .short 0432.Lstr_offsets_base0:433 .section .debug_str,"MS",@progbits,1434.Lskel_string0:435 .asciz "/proc/self/cwd" # string offset=0436.Lskel_string1:437 .asciz "_start" # string offset=15438.Lskel_string2:439 .asciz "t1" # string offset=22440.Lskel_string3:441 .asciz "a.dwo" # string offset=25442 .section .debug_str_offsets,"",@progbits443 .long .Lskel_string0444 .long .Lskel_string3445 .section .debug_str_offsets.dwo,"e",@progbits446 .long 28 # Length of String Offsets Set447 .short 5448 .short 0449 .section .debug_str.dwo,"eMS",@progbits,1450.Linfo_string0:451 .asciz "_start" # string offset=0452.Linfo_string1:453 .asciz "/proc/self/cwd" # string offset=7454.Linfo_string2:455 .asciz "a.dwo" # string offset=22456.Linfo_string3:457 .asciz "t1" # string offset=28458.Linfo_string4:459 .byte 0 # string offset=31460.Linfo_string5:461 .asciz "a.cc" # string offset=32462 .section .debug_str_offsets.dwo,"e",@progbits463 .long 0464 .long 7465 .long 22466 .long 28467 .long 31468 .long 32469 .section .debug_info.dwo,"e",@progbits470 .long .Ldebug_info_dwo_end1-.Ldebug_info_dwo_start1 # Length of Unit471.Ldebug_info_dwo_start1:472 .short 5 # DWARF version number473 .byte 5 # DWARF Unit Type474 .byte 8 # Address Size (in bytes)475 .long 0 # Offset Into Abbrev. Section476 .quad -2763464185488304260477 .byte 3 # Abbrev [3] 0x14:0x23 DW_TAG_compile_unit478 .byte 4 # DW_AT_producer479 .short 33 # DW_AT_language480 .byte 5 # DW_AT_name481 .byte 2 # DW_AT_dwo_name482 .byte 4 # Abbrev [4] 0x1a:0x13 DW_TAG_subprogram483 .byte 0 # DW_AT_low_pc484 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc485 .byte 1 # DW_AT_frame_base486 .byte 87487 # DW_AT_call_all_calls488 .byte 0 # DW_AT_name489 .byte 0 # DW_AT_decl_file490 .byte 2 # DW_AT_decl_line491 # DW_AT_external492 .byte 5 # Abbrev [5] 0x25:0x7 DW_TAG_formal_parameter493 .byte 0 # DW_AT_decl_file494 .byte 2 # DW_AT_decl_line495 .long 45 # DW_AT_type496 .byte 0 # End Of Children Mark497 .byte 6 # Abbrev [6] 0x2d:0x9 DW_TAG_structure_type498 # DW_AT_declaration499 .quad -4149699470930386446 # DW_AT_signature500 .byte 0 # End Of Children Mark501.Ldebug_info_dwo_end1:502 .section .debug_abbrev.dwo,"e",@progbits503 .byte 1 # Abbreviation Code504 .byte 65 # DW_TAG_type_unit505 .byte 1 # DW_CHILDREN_yes506 .byte 19 # DW_AT_language507 .byte 5 # DW_FORM_data2508 .byte 27 # DW_AT_comp_dir509 .byte 37 # DW_FORM_strx1510 .byte 118 # DW_AT_dwo_name511 .byte 37 # DW_FORM_strx1512 .byte 16 # DW_AT_stmt_list513 .byte 23 # DW_FORM_sec_offset514 .byte 0 # EOM(1)515 .byte 0 # EOM(2)516 .byte 2 # Abbreviation Code517 .byte 19 # DW_TAG_structure_type518 .byte 0 # DW_CHILDREN_no519 .byte 54 # DW_AT_calling_convention520 .byte 11 # DW_FORM_data1521 .byte 3 # DW_AT_name522 .byte 37 # DW_FORM_strx1523 .byte 11 # DW_AT_byte_size524 .byte 11 # DW_FORM_data1525 .byte 58 # DW_AT_decl_file526 .byte 11 # DW_FORM_data1527 .byte 59 # DW_AT_decl_line528 .byte 11 # DW_FORM_data1529 .byte 0 # EOM(1)530 .byte 0 # EOM(2)531 .byte 3 # Abbreviation Code532 .byte 17 # DW_TAG_compile_unit533 .byte 1 # DW_CHILDREN_yes534 .byte 37 # DW_AT_producer535 .byte 37 # DW_FORM_strx1536 .byte 19 # DW_AT_language537 .byte 5 # DW_FORM_data2538 .byte 3 # DW_AT_name539 .byte 37 # DW_FORM_strx1540 .byte 118 # DW_AT_dwo_name541 .byte 37 # DW_FORM_strx1542 .byte 0 # EOM(1)543 .byte 0 # EOM(2)544 .byte 4 # Abbreviation Code545 .byte 46 # DW_TAG_subprogram546 .byte 1 # DW_CHILDREN_yes547 .byte 17 # DW_AT_low_pc548 .byte 27 # DW_FORM_addrx549 .byte 18 # DW_AT_high_pc550 .byte 6 # DW_FORM_data4551 .byte 64 # DW_AT_frame_base552 .byte 24 # DW_FORM_exprloc553 .byte 122 # DW_AT_call_all_calls554 .byte 25 # DW_FORM_flag_present555 .byte 3 # DW_AT_name556 .byte 37 # DW_FORM_strx1557 .byte 58 # DW_AT_decl_file558 .byte 11 # DW_FORM_data1559 .byte 59 # DW_AT_decl_line560 .byte 11 # DW_FORM_data1561 .byte 63 # DW_AT_external562 .byte 25 # DW_FORM_flag_present563 .byte 0 # EOM(1)564 .byte 0 # EOM(2)565 .byte 5 # Abbreviation Code566 .byte 5 # DW_TAG_formal_parameter567 .byte 0 # DW_CHILDREN_no568 .byte 58 # DW_AT_decl_file569 .byte 11 # DW_FORM_data1570 .byte 59 # DW_AT_decl_line571 .byte 11 # DW_FORM_data1572 .byte 73 # DW_AT_type573 .byte 19 # DW_FORM_ref4574 .byte 0 # EOM(1)575 .byte 0 # EOM(2)576 .byte 6 # Abbreviation Code577 .byte 19 # DW_TAG_structure_type578 .byte 0 # DW_CHILDREN_no579 .byte 60 # DW_AT_declaration580 .byte 25 # DW_FORM_flag_present581 .byte 105 # DW_AT_signature582 .byte 32 # DW_FORM_ref_sig8583 .byte 0 # EOM(1)584 .byte 0 # EOM(2)585 .byte 0 # EOM(3)586 .section .debug_line.dwo,"e",@progbits587.Ltmp1:588 .long .Ldebug_line_end0-.Ldebug_line_start0 # unit length589.Ldebug_line_start0:590 .short 5591 .byte 8592 .byte 0593 .long .Lprologue_end0-.Lprologue_start0594.Lprologue_start0:595 .byte 1596 .byte 1597 .byte 1598 .byte -5599 .byte 14600 .byte 1601 .byte 1602 .byte 1603 .byte 8604 .byte 1605 .ascii "/proc/self/cwd"606 .byte 0607 .byte 3608 .byte 1609 .byte 8610 .byte 2611 .byte 15612 .byte 5613 .byte 30614 .byte 1615 .ascii "a.cc"616 .byte 0617 .byte 0618 .byte 0x68, 0x35, 0xf8, 0x9a619 .byte 0x7d, 0x36, 0x05, 0x40620 .byte 0x02, 0xb5, 0x1e, 0x54621 .byte 0xe4, 0x7d, 0x85, 0x2e622.Lprologue_end0:623.Ldebug_line_end0:624 .section .debug_addr,"",@progbits625 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution626.Ldebug_addr_start0:627 .short 5 # DWARF version number628 .byte 8 # Address size629 .byte 0 # Segment selector size630.Laddr_table_base0:631 .quad .Lfunc_begin0632.Ldebug_addr_end0:633 .section .debug_names,"",@progbits634 .long .Lnames_end0-.Lnames_start0 # Header: unit length635.Lnames_start0:636 .short 5 # Header: version637 .short 0 # Header: padding638 .long 1 # Header: compilation unit count639 .long 0 # Header: local type unit count640 .long 1 # Header: foreign type unit count641 .long 2 # Header: bucket count642 .long 2 # Header: name count643 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size644 .long 8 # Header: augmentation string size645 .ascii "LLVM0700" # Header: augmentation string646 .long .Lcu_begin0 # Compilation unit 0647 .quad -4149699470930386446 # Type unit 0648 .long 1 # Bucket 0649 .long 0 # Bucket 1650 .long 5863786 # Hash in Bucket 0651 .long -304389582 # Hash in Bucket 0652 .long .Lskel_string2 # String in Bucket 0: t1653 .long .Lskel_string1 # String in Bucket 0: _start654 .long .Lnames1-.Lnames_entries0 # Offset in Bucket 0655 .long .Lnames0-.Lnames_entries0 # Offset in Bucket 0656.Lnames_abbrev_start0:657 .byte 1 # Abbrev code658 .byte 19 # DW_TAG_structure_type659 .byte 2 # DW_IDX_type_unit660 .byte 11 # DW_FORM_data1661 .byte 3 # DW_IDX_die_offset662 .byte 19 # DW_FORM_ref4663 .byte 4 # DW_IDX_parent664 .byte 25 # DW_FORM_flag_present665 .byte 0 # End of abbrev666 .byte 0 # End of abbrev667 .byte 2 # Abbrev code668 .byte 19 # DW_TAG_structure_type669 .byte 3 # DW_IDX_die_offset670 .byte 19 # DW_FORM_ref4671 .byte 4 # DW_IDX_parent672 .byte 25 # DW_FORM_flag_present673 .byte 0 # End of abbrev674 .byte 0 # End of abbrev675 .byte 3 # Abbrev code676 .byte 46 # DW_TAG_subprogram677 .byte 3 # DW_IDX_die_offset678 .byte 19 # DW_FORM_ref4679 .byte 4 # DW_IDX_parent680 .byte 25 # DW_FORM_flag_present681 .byte 0 # End of abbrev682 .byte 0 # End of abbrev683 .byte 0 # End of abbrev list684.Lnames_abbrev_end0:685.Lnames_entries0:686.Lnames1:687.L2:688 .byte 1 # Abbreviation code689 .byte 0 # DW_IDX_type_unit690 .long 33 # DW_IDX_die_offset691.L1: # DW_IDX_parent692 .byte 2 # Abbreviation code693 .long 45 # DW_IDX_die_offset694 .byte 0 # DW_IDX_parent695 # End of list: t1696.Lnames0:697.L0:698 .byte 3 # Abbreviation code699 .long 26 # DW_IDX_die_offset700 .byte 0 # DW_IDX_parent701 # End of list: _start702 .p2align 2, 0x0703.Lnames_end0:704 .section ".note.GNU-stack","",@progbits705 .addrsig706 .section .debug_line,"",@progbits707.Lline_table_start0:708#--- b.s709 .text710 .file "b.cc"711 .file 0 "/proc/self/cwd" "b.cc" md5 0xe69190c4224a66c796605e3a1324674b712 .type vb,@object # @vb713 .bss714 .globl vb715vb:716 .zero 1717 .size vb, 1718 719 .section .debug_abbrev,"",@progbits720 .byte 1 # Abbreviation Code721 .byte 17 # DW_TAG_compile_unit722 .byte 1 # DW_CHILDREN_yes723 .byte 37 # DW_AT_producer724 .byte 37 # DW_FORM_strx1725 .byte 19 # DW_AT_language726 .byte 5 # DW_FORM_data2727 .byte 3 # DW_AT_name728 .byte 37 # DW_FORM_strx1729 .byte 114 # DW_AT_str_offsets_base730 .byte 23 # DW_FORM_sec_offset731 .byte 16 # DW_AT_stmt_list732 .byte 23 # DW_FORM_sec_offset733 .byte 27 # DW_AT_comp_dir734 .byte 37 # DW_FORM_strx1735 .byte 115 # DW_AT_addr_base736 .byte 23 # DW_FORM_sec_offset737 .byte 0 # EOM(1)738 .byte 0 # EOM(2)739 .byte 2 # Abbreviation Code740 .byte 52 # DW_TAG_variable741 .byte 0 # DW_CHILDREN_no742 .byte 3 # DW_AT_name743 .byte 37 # DW_FORM_strx1744 .byte 73 # DW_AT_type745 .byte 19 # DW_FORM_ref4746 .byte 63 # DW_AT_external747 .byte 25 # DW_FORM_flag_present748 .byte 58 # DW_AT_decl_file749 .byte 11 # DW_FORM_data1750 .byte 59 # DW_AT_decl_line751 .byte 11 # DW_FORM_data1752 .byte 2 # DW_AT_location753 .byte 24 # DW_FORM_exprloc754 .byte 0 # EOM(1)755 .byte 0 # EOM(2)756 .byte 3 # Abbreviation Code757 .byte 19 # DW_TAG_structure_type758 .byte 0 # DW_CHILDREN_no759 .byte 54 # DW_AT_calling_convention760 .byte 11 # DW_FORM_data1761 .byte 3 # DW_AT_name762 .byte 37 # DW_FORM_strx1763 .byte 11 # DW_AT_byte_size764 .byte 11 # DW_FORM_data1765 .byte 58 # DW_AT_decl_file766 .byte 11 # DW_FORM_data1767 .byte 59 # DW_AT_decl_line768 .byte 11 # DW_FORM_data1769 .byte 0 # EOM(1)770 .byte 0 # EOM(2)771 .byte 0 # EOM(3)772 .section .debug_info,"",@progbits773.Lcu_begin0:774 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit775.Ldebug_info_start0:776 .short 5 # DWARF version number777 .byte 1 # DWARF Unit Type778 .byte 8 # Address Size (in bytes)779 .long .debug_abbrev # Offset Into Abbrev. Section780 .byte 1 # Abbrev [1] 0xc:0x24 DW_TAG_compile_unit781 .byte 0 # DW_AT_producer782 .short 33 # DW_AT_language783 .byte 1 # DW_AT_name784 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base785 .long .Lline_table_start0 # DW_AT_stmt_list786 .byte 2 # DW_AT_comp_dir787 .long .Laddr_table_base0 # DW_AT_addr_base788 .byte 2 # Abbrev [2] 0x1e:0xb DW_TAG_variable789 .byte 3 # DW_AT_name790 .long 41 # DW_AT_type791 # DW_AT_external792 .byte 0 # DW_AT_decl_file793 .byte 1 # DW_AT_decl_line794 .byte 2 # DW_AT_location795 .byte 161796 .byte 0797 .byte 3 # Abbrev [3] 0x29:0x6 DW_TAG_structure_type798 .byte 5 # DW_AT_calling_convention799 .byte 4 # DW_AT_name800 .byte 1 # DW_AT_byte_size801 .byte 0 # DW_AT_decl_file802 .byte 1 # DW_AT_decl_line803 .byte 0 # End Of Children Mark804.Ldebug_info_end0:805 .section .debug_str_offsets,"",@progbits806 .long 24 # Length of String Offsets Set807 .short 5808 .short 0809.Lstr_offsets_base0:810 .section .debug_str,"MS",@progbits,1811.Linfo_string0:812 .byte 0 # string offset=0813.Linfo_string1:814 .asciz "b.cc" # string offset=1815.Linfo_string2:816 .asciz "/proc/self/cwd" # string offset=6817.Linfo_string3:818 .asciz "vb" # string offset=21819.Linfo_string4:820 .asciz "t1" # string offset=24821 .section .debug_str_offsets,"",@progbits822 .long .Linfo_string0823 .long .Linfo_string1824 .long .Linfo_string2825 .long .Linfo_string3826 .long .Linfo_string4827 .section .debug_addr,"",@progbits828 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution829.Ldebug_addr_start0:830 .short 5 # DWARF version number831 .byte 8 # Address size832 .byte 0 # Segment selector size833.Laddr_table_base0:834 .quad vb835.Ldebug_addr_end0:836 .section .debug_names,"",@progbits837 .long .Lnames_end0-.Lnames_start0 # Header: unit length838.Lnames_start0:839 .short 5 # Header: version840 .short 0 # Header: padding841 .long 1 # Header: compilation unit count842 .long 0 # Header: local type unit count843 .long 0 # Header: foreign type unit count844 .long 2 # Header: bucket count845 .long 2 # Header: name count846 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size847 .long 8 # Header: augmentation string size848 .ascii "LLVM0700" # Header: augmentation string849 .long .Lcu_begin0 # Compilation unit 0850 .long 1 # Bucket 0851 .long 2 # Bucket 1852 .long 5863786 # Hash in Bucket 0853 .long 5863901 # Hash in Bucket 1854 .long .Linfo_string4 # String in Bucket 0: t1855 .long .Linfo_string3 # String in Bucket 1: vb856 .long .Lnames0-.Lnames_entries0 # Offset in Bucket 0857 .long .Lnames1-.Lnames_entries0 # Offset in Bucket 1858.Lnames_abbrev_start0:859 .byte 1 # Abbrev code860 .byte 19 # DW_TAG_structure_type861 .byte 3 # DW_IDX_die_offset862 .byte 19 # DW_FORM_ref4863 .byte 4 # DW_IDX_parent864 .byte 25 # DW_FORM_flag_present865 .byte 0 # End of abbrev866 .byte 0 # End of abbrev867 .byte 2 # Abbrev code868 .byte 52 # DW_TAG_variable869 .byte 3 # DW_IDX_die_offset870 .byte 19 # DW_FORM_ref4871 .byte 4 # DW_IDX_parent872 .byte 25 # DW_FORM_flag_present873 .byte 0 # End of abbrev874 .byte 0 # End of abbrev875 .byte 0 # End of abbrev list876.Lnames_abbrev_end0:877.Lnames_entries0:878.Lnames0:879.L1:880 .byte 1 # Abbreviation code881 .long 41 # DW_IDX_die_offset882 .byte 0 # DW_IDX_parent883 # End of list: t1884.Lnames1:885.L0:886 .byte 2 # Abbreviation code887 .long 30 # DW_IDX_die_offset888 .byte 0 # DW_IDX_parent889 # End of list: vb890 .p2align 2, 0x0891.Lnames_end0:892 .section ".note.GNU-stack","",@progbits893 .addrsig894 .section .debug_line,"",@progbits895.Lline_table_start0:896