102 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 "bar"7 8# Fake .debug_info. We just need it for the offsets to two "compile units" and9# two "DIEs"10 .section .debug_info,"",@progbits11.Lcu_begin0:12 .byte 013.Ldie0:14 .byte 015.Lcu_begin1:16 .byte 017.Ldie1:18 .byte 019 20 .section .debug_names,"",@progbits21 .long .Lnames_end0-.Lnames_start0 # Header: contribution length22.Lnames_start0:23 .short 5 # Header: version24 .short 0 # Header: padding25 .long 1 # Header: compilation unit count26 .long 0 # Header: local type unit count27 .long 0 # Header: foreign type unit count28 .long 0 # Header: bucket count29 .long 1 # Header: name count30 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size31 .long 0 # Header: augmentation length32 .long .Lcu_begin0 # Compilation unit 033 .long .Linfo_string0 # String 1: foo34 .long .Lnames0-.Lnames_entries0 # Offset 135.Lnames_abbrev_start0:36 .byte 46 # Abbrev code37 .byte 46 # DW_TAG_subprogram38 .byte 3 # DW_IDX_die_offset39 .byte 19 # DW_FORM_ref440 .byte 0 # End of abbrev41 .byte 0 # End of abbrev42 .byte 0 # End of abbrev list43.Lnames_abbrev_end0:44.Lnames_entries0:45.Lnames0:46 .byte 46 # Abbrev code47 .long .Ldie0-.Lcu_begin0 # DW_IDX_die_offset48 .long 0 # End of list: foo49 .p2align 250 .byte 42 # Deliberately misalign the next contribution51.Lnames_end0:52 53 .long .Lnames_end1-.Lnames_start1 # Header: contribution length54.Lnames_start1:55 .short 5 # Header: version56 .short 0 # Header: padding57 .long 1 # Header: compilation unit count58 .long 0 # Header: local type unit count59 .long 0 # Header: foreign type unit count60 .long 0 # Header: bucket count61 .long 1 # Header: name count62 .long .Lnames_abbrev_end1-.Lnames_abbrev_start1 # Header: abbreviation table size63 .long 0 # Header: augmentation length64 .long .Lcu_begin1 # Compilation unit 065 .long .Linfo_string1 # String 1: bar66 .long .Lnames1-.Lnames_entries1 # Offset 167.Lnames_abbrev_start1:68 .byte 52 # Abbrev code69 .byte 52 # DW_TAG_variable70 .byte 3 # DW_IDX_die_offset71 .byte 19 # DW_FORM_ref472 .byte 0 # End of abbrev73 .byte 0 # End of abbrev74 .byte 0 # End of abbrev list75.Lnames_abbrev_end1:76.Lnames_entries1:77.Lnames1:78 .byte 52 # Abbrev code79 .long .Ldie1-.Lcu_begin1 # DW_IDX_die_offset80 .long 0 # End of list: bar81 .p2align 282.Lnames_end1:83# CHECK: Name Index @ 0x084# CHECK: Name 1 {85# CHECK-NEXT: String: 0x00000000 "foo"86# CHECK-NEXT: Entry @ 0x37 {87# CHECK-NEXT: Abbrev: 0x2e88# CHECK-NEXT: Tag: DW_TAG_subprogram89# CHECK-NEXT: DW_IDX_die_offset: 0x0000000190# CHECK-NEXT: }91# CHECK-NEXT: }92 93# CHECK: Name Index @ 0x4194# CHECK: Name 1 {95# CHECK-NEXT: String: 0x00000004 "bar"96# CHECK-NEXT: Entry @ 0x78 {97# CHECK-NEXT: Abbrev: 0x3498# CHECK-NEXT: Tag: DW_TAG_variable99# CHECK-NEXT: DW_IDX_die_offset: 0x00000001100# CHECK-NEXT: }101# CHECK-NEXT: }102