259 lines · plain
1# RUN: llvm-mc -triple x86_64-pc-linux %s -filetype=obj -o - | llvm-dwarfdump -debug-names - | FileCheck %s2 .section .debug_str,"MS",@progbits,13.Linfo_string0:4 .asciz "foo"5.Linfo_string1:6 .asciz "_Z3foov"7.Linfo_string2:8 .asciz "bar"9 10# Fake .debug_info. We just need it for the offsets to two "compile units" and11# two "DIEs"12 .section .debug_info,"",@progbits13.Lcu_begin0:14 .byte 015.Ldie0:16 .byte 017.Lcu_begin1:18 .byte 019.Ldie1:20 .byte 021 22 .section .debug_names,"",@progbits23 .long .Lnames_end0-.Lnames_start0 # Header: contribution length24.Lnames_start0:25 .short 5 # Header: version26 .short 0 # Header: padding27 .long 1 # Header: compilation unit count28 .long 0 # Header: local type unit count29 .long 0 # Header: foreign type unit count30 .long 2 # Header: bucket count31 .long 2 # Header: name count32 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size33 .long 0 # Header: augmentation length34 .long .Lcu_begin0 # Compilation unit 035 .long 0 # Bucket 036 .long 1 # Bucket 137 .long 193491849 # Hash in Bucket 138 .long -1257882357 # Hash in Bucket 139 .long .Linfo_string0 # String in Bucket 1: foo40 .long .Linfo_string1 # String in Bucket 1: _Z3foov41 .long .Lnames0-.Lnames_entries0 # Offset in Bucket 142 .long .Lnames1-.Lnames_entries0 # Offset in Bucket 143.Lnames_abbrev_start0:44 .byte 46 # Abbrev code45 .byte 46 # DW_TAG_subprogram46 .byte 3 # DW_IDX_die_offset47 .byte 19 # DW_FORM_ref448 .byte 0 # End of abbrev49 .byte 0 # End of abbrev50 .byte 0 # End of abbrev list51.Lnames_abbrev_end0:52.Lnames_entries0:53.Lnames0:54 .byte 46 # Abbrev code55 .long .Ldie0-.Lcu_begin0 # DW_IDX_die_offset56 .long 0 # End of list: foo57.Lnames1:58 .byte 46 # Abbrev code59 .long .Ldie0-.Lcu_begin0 # DW_IDX_die_offset60 .long 0 # End of list: _Z3foov61 .p2align 262.Lnames_end0:63 64 .long .Lnames_end1-.Lnames_start1 # Header: contribution length65.Lnames_start1:66 .short 5 # Header: version67 .short 0 # Header: padding68 .long 1 # Header: compilation unit count69 .long 0 # Header: local type unit count70 .long 0 # Header: foreign type unit count71 .long 1 # Header: bucket count72 .long 1 # Header: name count73 .long .Lnames_abbrev_end1-.Lnames_abbrev_start1 # Header: abbreviation table size74 .long 0 # Header: augmentation length75 .long .Lcu_begin1 # Compilation unit 076 .long 1 # Bucket 077 .long 193487034 # Hash in Bucket 078 .long .Linfo_string2 # String in Bucket 0: bar79 .long .Lnames2-.Lnames_entries1 # Offset in Bucket 080.Lnames_abbrev_start1:81 .byte 52 # Abbrev code82 .byte 52 # DW_TAG_variable83 .byte 3 # DW_IDX_die_offset84 .byte 19 # DW_FORM_ref485 .byte 0 # End of abbrev86 .byte 0 # End of abbrev87 .byte 0 # End of abbrev list88.Lnames_abbrev_end1:89.Lnames_entries1:90.Lnames2:91 .byte 52 # Abbrev code92 .long .Ldie1-.Lcu_begin1 # DW_IDX_die_offset93 .long 0 # End of list: bar94 .p2align 295.Lnames_end1:96 97 .long 0xffffffff # DWARF64 mark98 .quad .Lnames_end2-.Lnames_start2 # Length99.Lnames_start2:100 .short 5 # Version101 .space 2 # Padding102 .long 1 # CU count103 .long 1 # Local TU count104 .long 1 # Foreign TU count105 .long 1 # Bucket count106 .long 1 # Name count107 .long .Lnames_abbrev_end2-.Lnames_abbrev_start2 # Abbreviations table size108 .long 0 # Augmentation string size109 .quad 0xcc00cccccccc # CU0 offset110 .quad 0xaa00aaaaaaaa # Local TU0 offset111 .quad 0xffffff00ffffffff # Foreign TU2 signature112 .long 1 # Bucket 0113 .long 0xb887389 # Hash in Bucket 0114 .quad .Linfo_string0 # String in Bucket 0: foo115 .quad .Lnames3-.Lnames_entries2 # Offset in Bucket 0116.Lnames_abbrev_start2:117 .byte 0x01 # Abbrev code118 .byte 0x24 # DW_TAG_base_type119 .byte 0x02 # DW_IDX_type_unit120 .byte 0x06 # DW_FORM_data4121 .byte 0x05 # DW_IDX_type_hash122 .byte 0x07 # DW_FORM_data8123 .byte 0x00 # End of abbrev124 .byte 0x00 # End of abbrev125 .byte 0x00 # End of abbrev list126.Lnames_abbrev_end2:127.Lnames_entries2:128.Lnames3:129 .byte 0x01 # Abbrev code130 .long 1 # DW_IDX_type_unit131 .quad 0xff03ffffffff # DW_IDX_type_hash132 .byte 0x00 # End of list: foo133 .p2align 2134.Lnames_end2:135 136# CHECK: .debug_names contents:137# CHECK-NEXT: Name Index @ 0x0 {138# CHECK-NEXT: Header {139# CHECK-NEXT: Length: 0x60140# CHECK-NEXT: Format: DWARF32141# CHECK-NEXT: Version: 5142# CHECK-NEXT: CU count: 1143# CHECK-NEXT: Local TU count: 0144# CHECK-NEXT: Foreign TU count: 0145# CHECK-NEXT: Bucket count: 2146# CHECK-NEXT: Name count: 2147# CHECK-NEXT: Abbreviations table size: 0x7148# CHECK-NEXT: Augmentation: ''149# CHECK-NEXT: }150# CHECK-NEXT: Compilation Unit offsets [151# CHECK-NEXT: CU[0]: 0x00000000152# CHECK-NEXT: ]153# CHECK-NEXT: Abbreviations [154# CHECK-NEXT: Abbreviation [[ABBREV:0x[0-9a-f]*]] {155# CHECK-NEXT: Tag: DW_TAG_subprogram156# CHECK-NEXT: DW_IDX_die_offset: DW_FORM_ref4157# CHECK-NEXT: }158# CHECK-NEXT: ]159# CHECK-NEXT: Bucket 0 [160# CHECK-NEXT: EMPTY161# CHECK-NEXT: ]162# CHECK-NEXT: Bucket 1 [163# CHECK-NEXT: Name 1 {164# CHECK-NEXT: Hash: 0xB887389165# CHECK-NEXT: String: 0x00000000 "foo"166# CHECK-NEXT: Entry @ 0x4f {167# CHECK-NEXT: Abbrev: [[ABBREV]]168# CHECK-NEXT: Tag: DW_TAG_subprogram169# CHECK-NEXT: DW_IDX_die_offset: 0x00000001170# CHECK-NEXT: }171# CHECK-NEXT: }172# CHECK-NEXT: Name 2 {173# CHECK-NEXT: Hash: 0xB5063D0B174# CHECK-NEXT: String: 0x00000004 "_Z3foov"175# CHECK-NEXT: Entry @ 0x58 {176# CHECK-NEXT: Abbrev: [[ABBREV]]177# CHECK-NEXT: Tag: DW_TAG_subprogram178# CHECK-NEXT: DW_IDX_die_offset: 0x00000001179# CHECK-NEXT: }180# CHECK-NEXT: }181# CHECK-NEXT: ]182# CHECK-NEXT: }183# CHECK-NEXT: Name Index @ 0x64 {184# CHECK-NEXT: Header {185# CHECK-NEXT: Length: 0x44186# CHECK-NEXT: Format: DWARF32187# CHECK-NEXT: Version: 5188# CHECK-NEXT: CU count: 1189# CHECK-NEXT: Local TU count: 0190# CHECK-NEXT: Foreign TU count: 0191# CHECK-NEXT: Bucket count: 1192# CHECK-NEXT: Name count: 1193# CHECK-NEXT: Abbreviations table size: 0x7194# CHECK-NEXT: Augmentation: ''195# CHECK-NEXT: }196# CHECK-NEXT: Compilation Unit offsets [197# CHECK-NEXT: CU[0]: 0x00000002198# CHECK-NEXT: ]199# CHECK-NEXT: Abbreviations [200# CHECK-NEXT: Abbreviation [[ABBREV1:0x[0-9a-f]*]] {201# CHECK-NEXT: Tag: DW_TAG_variable202# CHECK-NEXT: DW_IDX_die_offset: DW_FORM_ref4203# CHECK-NEXT: }204# CHECK-NEXT: ]205# CHECK-NEXT: Bucket 0 [206# CHECK-NEXT: Name 1 {207# CHECK-NEXT: Hash: 0xB8860BA208# CHECK-NEXT: String: 0x0000000c "bar"209# CHECK-NEXT: Entry @ 0xa3 {210# CHECK-NEXT: Abbrev: [[ABBREV1]]211# CHECK-NEXT: Tag: DW_TAG_variable212# CHECK-NEXT: DW_IDX_die_offset: 0x00000001213# CHECK-NEXT: }214# CHECK-NEXT: }215# CHECK-NEXT: ]216# CHECK-NEXT: }217# CHECK-NEXT: Name Index @ 0xac {218# CHECK-NEXT: Header {219# CHECK-NEXT: Length: 0x68220# CHECK-NEXT: Format: DWARF64221# CHECK-NEXT: Version: 5222# CHECK-NEXT: CU count: 1223# CHECK-NEXT: Local TU count: 1224# CHECK-NEXT: Foreign TU count: 1225# CHECK-NEXT: Bucket count: 1226# CHECK-NEXT: Name count: 1227# CHECK-NEXT: Abbreviations table size: 0x9228# CHECK-NEXT: Augmentation: ''229# CHECK-NEXT: }230# CHECK-NEXT: Compilation Unit offsets [231# CHECK-NEXT: CU[0]: 0xcc00cccccccc232# CHECK-NEXT: ]233# CHECK-NEXT: Local Type Unit offsets [234# CHECK-NEXT: LocalTU[0]: 0xaa00aaaaaaaa235# CHECK-NEXT: ]236# CHECK-NEXT: Foreign Type Unit signatures [237# CHECK-NEXT: ForeignTU[0]: 0xffffff00ffffffff238# CHECK-NEXT: ]239# CHECK-NEXT: Abbreviations [240# CHECK-NEXT: Abbreviation [[ABBREV2:0x[0-9a-f]*]] {241# CHECK-NEXT: Tag: DW_TAG_base_type242# CHECK-NEXT: DW_IDX_type_unit: DW_FORM_data4243# CHECK-NEXT: DW_IDX_type_hash: DW_FORM_data8244# CHECK-NEXT: }245# CHECK-NEXT: ]246# CHECK-NEXT: Bucket 0 [247# CHECK-NEXT: Name 1 {248# CHECK-NEXT: Hash: 0xB887389249# CHECK-NEXT: String: 0x00000000 "foo"250# CHECK-NEXT: Entry @ 0x111 {251# CHECK-NEXT: Abbrev: [[ABBREV2]]252# CHECK-NEXT: Tag: DW_TAG_base_type253# CHECK-NEXT: DW_IDX_type_unit: 0x00000001254# CHECK-NEXT: DW_IDX_type_hash: 0x0000ff03ffffffff255# CHECK-NEXT: }256# CHECK-NEXT: }257# CHECK-NEXT: ]258# CHECK-NEXT: }259