183 lines · plain
1# RUN: llvm-mc -triple x86_64-pc-linux %s -filetype=obj -o %t2# RUN: llvm-dwarfdump -find=foo - <%t | FileCheck --check-prefix=FOO %s3# RUN: llvm-dwarfdump -find=baz - <%t | FileCheck --check-prefix=BAZ %s4# RUN: llvm-dwarfdump -find=missing - <%t | FileCheck --check-prefix=MISSING %s5 6# FOO: DW_TAG_subprogram7# FOO-NEXT: DW_AT_name ("foo")8# FOO-NEXT: DW_AT_external9 10# BAZ: DW_TAG_subprogram11# BAZ-NEXT: DW_AT_name ("baz")12# BAZ-NEXT: DW_AT_external13 14# MISSING-NOT: foo15# MISSING-NOT: bar16# MISSING-NOT: baz17# MISSING-NOT: bazz18 19 .section .debug_str,"MS",@progbits,120.Lstring_foo:21 .asciz "foo"22.Lstring_foo_mangled:23 .asciz "_Z3foov"24.Lstring_bar:25 .asciz "bar"26.Lstring_baz:27 .asciz "baz"28.Lstring_bazz:29 .asciz "bazz"30.Lstring_producer:31 .asciz "Hand-written dwarf"32 33 .section .debug_abbrev,"",@progbits34.Lsection_abbrev:35 .byte 1 # Abbreviation Code36 .byte 17 # DW_TAG_compile_unit37 .byte 1 # DW_CHILDREN_yes38 .byte 37 # DW_AT_producer39 .byte 14 # DW_FORM_strp40 .byte 19 # DW_AT_language41 .byte 5 # DW_FORM_data242 .byte 0 # EOM(1)43 .byte 0 # EOM(2)44 .byte 2 # Abbreviation Code45 .byte 46 # DW_TAG_subprogram46 .byte 0 # DW_CHILDREN_no47 .byte 3 # DW_AT_name48 .byte 14 # DW_FORM_strp49 .byte 63 # DW_AT_external50 .byte 25 # DW_FORM_flag_present51 .byte 0 # EOM(1)52 .byte 0 # EOM(2)53 .byte 0 # EOM(3)54 55 .section .debug_info,"",@progbits56.Lcu_begin0:57 .long .Lcu_end0-.Lcu_start0 # Length of Unit58.Lcu_start0:59 .short 4 # DWARF version number60 .long .Lsection_abbrev # Offset Into Abbrev. Section61 .byte 8 # Address Size (in bytes)62 .byte 1 # Abbrev [1] DW_TAG_compile_unit63 .long .Lstring_producer # DW_AT_producer64 .short 12 # DW_AT_language65.Ldie_foo:66 .byte 2 # Abbrev [2] DW_TAG_subprogram67 .long .Lstring_foo # DW_AT_name68 # DW_AT_external69.Ldie_bar:70 .byte 2 # Abbrev [2] DW_TAG_subprogram71 .long .Lstring_bar # DW_AT_name72 # DW_AT_external73 .byte 0 # End Of Children Mark74.Lcu_end0:75 76.Lcu_begin1:77 .long .Lcu_end1-.Lcu_start1 # Length of Unit78.Lcu_start1:79 .short 4 # DWARF version number80 .long .Lsection_abbrev # Offset Into Abbrev. Section81 .byte 8 # Address Size (in bytes)82 .byte 1 # Abbrev [1] DW_TAG_compile_unit83 .long .Lstring_producer # DW_AT_producer84 .short 12 # DW_AT_language85.Ldie_baz:86 .byte 2 # Abbrev [2] DW_TAG_subprogram87 .long .Lstring_baz # DW_AT_name88 # DW_AT_external89.Ldie_bazz:90 .byte 2 # Abbrev [2] DW_TAG_subprogram91 .long .Lstring_bazz # DW_AT_name92 # DW_AT_external93 .byte 0 # End Of Children Mark94.Lcu_end1:95 96 .section .debug_names,"",@progbits97 .long .Lnames_end0-.Lnames_start0 # Header: contribution length98.Lnames_start0:99 .short 5 # Header: version100 .short 0 # Header: padding101 .long 1 # Header: compilation unit count102 .long 0 # Header: local type unit count103 .long 0 # Header: foreign type unit count104 .long 2 # Header: bucket count105 .long 3 # Header: name count106 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size107 .long 0 # Header: augmentation length108 .long .Lcu_begin0 # Compilation unit 0109 .long 1 # Bucket 0110 .long 2 # Bucket 1111 .long 193487034 # Hash in Bucket 0112 .long 193491849 # Hash in Bucket 1113 .long -1257882357 # Hash in Bucket 1114 .long .Lstring_bar # String in Bucket 1: bar115 .long .Lstring_foo # String in Bucket 1: foo116 .long .Lstring_foo_mangled # String in Bucket 1: _Z3foov117 .long .Lnames0-.Lnames_entries0 # Offset in Bucket 1118 .long .Lnames1-.Lnames_entries0 # Offset in Bucket 1119 .long .Lnames2-.Lnames_entries0 # Offset in Bucket 1120.Lnames_abbrev_start0:121 .byte 46 # Abbrev code122 .byte 46 # DW_TAG_subprogram123 .byte 3 # DW_IDX_die_offset124 .byte 19 # DW_FORM_ref4125 .byte 0 # End of abbrev126 .byte 0 # End of abbrev127 .byte 0 # End of abbrev list128.Lnames_abbrev_end0:129.Lnames_entries0:130.Lnames0:131 .byte 46 # Abbrev code132 .long .Ldie_bar-.Lcu_begin0 # DW_IDX_die_offset133 .long 0 # End of list: bar134.Lnames1:135 .byte 46 # Abbrev code136 .long .Ldie_foo-.Lcu_begin0 # DW_IDX_die_offset137 .long 0 # End of list: foo138.Lnames2:139 .byte 46 # Abbrev code140 .long .Ldie_foo-.Lcu_begin0 # DW_IDX_die_offset141 .long 0 # End of list: _Z3foov142 .p2align 2143.Lnames_end0:144 145# Index of compilation unit 1. This one has no hash table.146 .long .Lnames_end1-.Lnames_start1 # Header: contribution length147.Lnames_start1:148 .short 5 # Header: version149 .short 0 # Header: padding150 .long 1 # Header: compilation unit count151 .long 0 # Header: local type unit count152 .long 0 # Header: foreign type unit count153 .long 0 # Header: bucket count154 .long 2 # Header: name count155 .long .Lnames_abbrev_end1-.Lnames_abbrev_start1 # Header: abbreviation table size156 .long 0 # Header: augmentation length157 .long .Lcu_begin1 # Compilation unit 0158 .long .Lstring_baz # String in Bucket 1: baz159 .long .Lstring_bazz # String in Bucket 1: bazz160 .long .Lnames3-.Lnames_entries1 # Offset in Bucket 1161 .long .Lnames4-.Lnames_entries1 # Offset in Bucket 1162.Lnames_abbrev_start1:163 .byte 46 # Abbrev code164 .byte 46 # DW_TAG_subprogram165 .byte 3 # DW_IDX_die_offset166 .byte 19 # DW_FORM_ref4167 .byte 0 # End of abbrev168 .byte 0 # End of abbrev169 .byte 0 # End of abbrev list170.Lnames_abbrev_end1:171.Lnames_entries1:172.Lnames3:173 .byte 46 # Abbrev code174 .long .Ldie_baz-.Lcu_begin1 # DW_IDX_die_offset175 .long 0 # End of list: baz176 .p2align 2177.Lnames4:178 .byte 46 # Abbrev code179 .long .Ldie_bazz-.Lcu_begin1 # DW_IDX_die_offset180 .long 0 # End of list: baz181 .p2align 2182.Lnames_end1:183