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
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
10 # WARN: warning: a.tu.o:(.debug_names): type units are not implemented
13 # DWARF-NEXT: Local TU count: 0
14 # DWARF-NEXT: Foreign TU count: 0
15 # DWARF: Compilation Unit offsets [
17 # DWARF-SAME: 0x0000002a
19 # DWARF-SAME: 0x0000006a
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
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
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
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
48 # WARN2: warning: a.foreign-tu.o:(.debug_names): type units are not implemented
51 # DWARF2-NEXT: Local TU count: 0
52 # DWARF2-NEXT: Foreign TU count: 0
53 # DWARF2: Compilation Unit offsets [
55 # DWARF2-SAME: 0x00000000
57 # DWARF2-SAME: 0x00000028
63 extern
"C" void _start
(t1
) {}
68 clang
--target
=x86_64-linux
-S
-O1
-g
-gpubnames
-fdebug-types-section
a.cc
-o
-
69 echo
'#--- a.foreign-tu.s'
70 clang
--target
=x86_64-linux
-S
-O1
-g
-gpubnames
-fdebug-types-section
-gsplit-dwarf
a.cc
-o
-
72 clang
--target
=x86_64-linux
-S
-O1
-g
-gpubnames b.cc
-o
-
77 .globl _start # -- Begin function _start
79 .type _start,@function
82 .file 0 "/proc/self/cwd" "a.cc" md5 0x6835f89a7d36054002b51e54e47d852e
85 .loc 0 2 29 prologue_end # a.cc:2:29
89 .size _start, .Lfunc_end0-_start
92 .section .debug_info,"G",@progbits,14297044602779165170,comdat
94 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
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
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
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
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
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
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
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
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
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
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
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
206 .section .debug_info,"",@progbits
208 .long .Ldebug_info_end1-.Ldebug_info_start1 # Length of Unit
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
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
229 # DW_AT_call_all_calls
231 .byte 0 # DW_AT_decl_file
232 .byte 2 # DW_AT_decl_line
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
241 .quad -4149699470930386446 # DW_AT_signature
242 .byte 0 # End Of Children Mark
244 .section .debug_str_offsets,"",@progbits
245 .long 24 # Length of String Offsets Set
249 .section .debug_str,"MS",@progbits,1
251 .byte 0 # string offset=0
253 .asciz "a.cc" # string offset=1
255 .asciz "/proc/self/cwd" # string offset=6
257 .asciz "_start" # string offset=21
259 .asciz "t1" # string offset=28
260 .section .debug_str_offsets,"",@progbits
266 .section .debug_addr,"",@progbits
267 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
269 .short 5 # DWARF version number
270 .byte 8 # Address size
271 .byte 0 # Segment selector size
275 .section .debug_names,"",@progbits
276 .long .Lnames_end0-.Lnames_start0 # Header: unit length
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
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
330 .byte 1 # Abbreviation code
331 .byte 0 # DW_IDX_type_unit
332 .long 35 # DW_IDX_die_offset
334 .byte 2 # Abbreviation code
335 .long 54 # DW_IDX_die_offset
336 .byte 0 # DW_IDX_parent
339 .byte 3 # Abbreviation code
340 .long 35 # DW_IDX_die_offset
341 .byte 0 # DW_IDX_parent
342 # End of list: _start
345 .section ".note.GNU-stack","",@progbits
347 .section .debug_line,"",@progbits
352 .globl _start # -- Begin function _start
354 .type _start,@function
357 .file 0 "/proc/self/cwd" "a.cc" md5 0x6835f89a7d36054002b51e54e47d852e
360 .loc 0 2 29 prologue_end # a.cc:2:29
364 .size _start, .Lfunc_end0-_start
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
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
410 .section .debug_info,"",@progbits
412 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
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
428 .section .debug_str_offsets,"",@progbits
429 .long 12 # Length of String Offsets Set
433 .section .debug_str,"MS",@progbits,1
435 .asciz "/proc/self/cwd" # string offset=0
437 .asciz "_start" # string offset=15
439 .asciz "t1" # string offset=22
441 .asciz "a.dwo" # string offset=25
442 .section .debug_str_offsets,"",@progbits
445 .section .debug_str_offsets.dwo,"e",@progbits
446 .long 28 # Length of String Offsets Set
449 .section .debug_str.dwo,"eMS",@progbits,1
451 .asciz "_start" # string offset=0
453 .asciz "/proc/self/cwd" # string offset=7
455 .asciz "a.dwo" # string offset=22
457 .asciz "t1" # string offset=28
459 .byte 0 # string offset=31
461 .asciz "a.cc" # string offset=32
462 .section .debug_str_offsets.dwo,"e",@progbits
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
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
487 # DW_AT_call_all_calls
489 .byte 0 # DW_AT_decl_file
490 .byte 2 # DW_AT_decl_line
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
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
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
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
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
539 .byte 37 # DW_FORM_strx1
540 .byte 118 # DW_AT_dwo_name
541 .byte 37 # DW_FORM_strx1
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
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
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
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
586 .section .debug_line.dwo,"e",@progbits
588 .long .Ldebug_line_end0-.Ldebug_line_start0 # unit length
593 .long .Lprologue_end0-.Lprologue_start0
605 .ascii "/proc/self/cwd"
618 .byte 0x68, 0x35, 0xf8, 0x9a
619 .byte 0x7d, 0x36, 0x05, 0x40
620 .byte 0x02, 0xb5, 0x1e, 0x54
621 .byte 0xe4, 0x7d, 0x85, 0x2e
624 .section .debug_addr,"",@progbits
625 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
627 .short 5 # DWARF version number
628 .byte 8 # Address size
629 .byte 0 # Segment selector size
633 .section .debug_names,"",@progbits
634 .long .Lnames_end0-.Lnames_start0 # Header: unit length
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
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
688 .byte 1 # Abbreviation code
689 .byte 0 # DW_IDX_type_unit
690 .long 33 # DW_IDX_die_offset
692 .byte 2 # Abbreviation code
693 .long 45 # DW_IDX_die_offset
694 .byte 0 # DW_IDX_parent
698 .byte 3 # Abbreviation code
699 .long 26 # DW_IDX_die_offset
700 .byte 0 # DW_IDX_parent
701 # End of list: _start
704 .section ".note.GNU-stack","",@progbits
706 .section .debug_line,"",@progbits
711 .file 0 "/proc/self/cwd" "b.cc" md5 0xe69190c4224a66c796605e3a1324674b
712 .type vb,@object # @vb
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
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
739 .byte 2 # Abbreviation Code
740 .byte 52 # DW_TAG_variable
741 .byte 0 # DW_CHILDREN_no
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
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
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
772 .section .debug_info,"",@progbits
774 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
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
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
790 .long 41 # DW_AT_type
792 .byte 0 # DW_AT_decl_file
793 .byte 1 # DW_AT_decl_line
794 .byte 2 # DW_AT_location
797 .byte 3 # Abbrev [3] 0x29:0x6 DW_TAG_structure_type
798 .byte 5 # DW_AT_calling_convention
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
805 .section .debug_str_offsets,"",@progbits
806 .long 24 # Length of String Offsets Set
810 .section .debug_str,"MS",@progbits,1
812 .byte 0 # string offset=0
814 .asciz "b.cc" # string offset=1
816 .asciz "/proc/self/cwd" # string offset=6
818 .asciz "vb" # string offset=21
820 .asciz "t1" # string offset=24
821 .section .debug_str_offsets,"",@progbits
827 .section .debug_addr,"",@progbits
828 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
830 .short 5 # DWARF version number
831 .byte 8 # Address size
832 .byte 0 # Segment selector size
836 .section .debug_names,"",@progbits
837 .long .Lnames_end0-.Lnames_start0 # Header: unit length
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
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
880 .byte 1 # Abbreviation code
881 .long 41 # DW_IDX_die_offset
882 .byte 0 # DW_IDX_parent
886 .byte 2 # Abbreviation code
887 .long 30 # DW_IDX_die_offset
888 .byte 0 # DW_IDX_parent
892 .section ".note.GNU-stack","",@progbits
894 .section .debug_line,"",@progbits