291 lines · plain
1# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \2# RUN: | not llvm-dwarfdump -lookup=0xffffffff - | \3# RUN: FileCheck %s --check-prefix=EMPTY --allow-empty4# EMPTY: {{^$}}5 6# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \7# RUN: | not llvm-dwarfdump -lookup=0xffffffffffffffff - | \8# RUN: FileCheck %s --check-prefix=EMPTY --allow-empty9# EMPTY: {{^$}}10 11# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \12# RUN: | llvm-dwarfdump -lookup=0x4 - | \13# RUN: FileCheck %s -check-prefixes=CHECK,LEX,A14 15# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \16# RUN: | llvm-dwarfdump -lookup=0xb - | \17# RUN: FileCheck %s -check-prefixes=CHECK,LEX,B18 19# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \20# RUN: | llvm-dwarfdump -lookup=0x14 - | \21# RUN: FileCheck %s -check-prefixes=CHECK,C22 23# CHECK: Compile Unit: length = 0x00000060, format = DWARF32, version = 0x0004, abbr_offset = 0x0000, addr_size = 0x08 (next unit at 0x00000064)24 25# CHECK: DW_TAG_compile_unit26# CHECK: DW_AT_name ("foo.c")27# CHECK: DW_AT_stmt_list (0x00000000)28# CHECK: DW_AT_low_pc (0x0000000000000000)29# CHECK: DW_AT_high_pc (0x0000000000000016)30 31# CHECK: DW_TAG_subprogram32# CHECK: DW_AT_low_pc (0x0000000000000000)33# CHECK: DW_AT_high_pc (0x0000000000000016)34# CHECK: DW_AT_name ("foo")35 36# LEX: DW_TAG_lexical_block37# LEX: DW_AT_low_pc (0x0000000000000004)38# LEX: DW_AT_high_pc (0x0000000000000014)39 40# A: Line info: file 'foo.c', line 3, column 9, start file 'foo.c', start line 141# B: Line info: file 'foo.c', line 4, column 6, start file 'foo.c', start line 142# C: Line info: file 'foo.c', line 6, column 1, start file 'foo.c', start line 143 44 .section __TEXT,__text,regular,pure_instructions45 .macosx_version_min 10, 1346 .globl _foo ## -- Begin function foo47 .p2align 4, 0x9048_foo: ## @foo49Lfunc_begin0:50 .file 1 "foo.c"51 .loc 1 1 0 ## foo.c:1:052 .cfi_startproc53## %bb.0: ## %entry54 pushq %rbp55Lcfi0:56 .cfi_def_cfa_offset 1657Lcfi1:58 .cfi_offset %rbp, -1659 movq %rsp, %rbp60Lcfi2:61 .cfi_def_cfa_register %rbp62Ltmp0:63 .loc 1 3 9 prologue_end ## foo.c:3:964 movl $1, -4(%rbp)65 .loc 1 4 6 ## foo.c:4:666 movl -4(%rbp), %eax67 addl $1, %eax68 movl %eax, -4(%rbp)69Ltmp1:70 .loc 1 6 1 ## foo.c:6:171 popq %rbp72 retq73Ltmp2:74Lfunc_end0:75 .cfi_endproc76 ## -- End function77 .section __DWARF,__debug_str,regular,debug78Linfo_string:79 .asciz "clang version 6.0.0 (trunk 314509) (llvm/trunk 314517)" ## string offset=080 .asciz "foo.c" ## string offset=5581 .asciz "/private/tmp" ## string offset=6182 .asciz "foo" ## string offset=7483 .asciz "i" ## string offset=7884 .asciz "int" ## string offset=8085 .section __DWARF,__debug_abbrev,regular,debug86Lsection_abbrev:87 .byte 1 ## Abbreviation Code88 .byte 17 ## DW_TAG_compile_unit89 .byte 1 ## DW_CHILDREN_yes90 .byte 37 ## DW_AT_producer91 .byte 14 ## DW_FORM_strp92 .byte 19 ## DW_AT_language93 .byte 5 ## DW_FORM_data294 .byte 3 ## DW_AT_name95 .byte 14 ## DW_FORM_strp96 .byte 16 ## DW_AT_stmt_list97 .byte 23 ## DW_FORM_sec_offset98 .byte 27 ## DW_AT_comp_dir99 .byte 14 ## DW_FORM_strp100 .byte 17 ## DW_AT_low_pc101 .byte 1 ## DW_FORM_addr102 .byte 18 ## DW_AT_high_pc103 .byte 6 ## DW_FORM_data4104 .byte 0 ## EOM(1)105 .byte 0 ## EOM(2)106 .byte 2 ## Abbreviation Code107 .byte 46 ## DW_TAG_subprogram108 .byte 1 ## DW_CHILDREN_yes109 .byte 17 ## DW_AT_low_pc110 .byte 1 ## DW_FORM_addr111 .byte 18 ## DW_AT_high_pc112 .byte 6 ## DW_FORM_data4113 .byte 64 ## DW_AT_frame_base114 .byte 24 ## DW_FORM_exprloc115 .byte 3 ## DW_AT_name116 .byte 14 ## DW_FORM_strp117 .byte 58 ## DW_AT_decl_file118 .byte 11 ## DW_FORM_data1119 .byte 59 ## DW_AT_decl_line120 .byte 11 ## DW_FORM_data1121 .byte 63 ## DW_AT_external122 .byte 25 ## DW_FORM_flag_present123 .byte 0 ## EOM(1)124 .byte 0 ## EOM(2)125 .byte 3 ## Abbreviation Code126 .byte 11 ## DW_TAG_lexical_block127 .byte 1 ## DW_CHILDREN_yes128 .byte 17 ## DW_AT_low_pc129 .byte 1 ## DW_FORM_addr130 .byte 18 ## DW_AT_high_pc131 .byte 6 ## DW_FORM_data4132 .byte 0 ## EOM(1)133 .byte 0 ## EOM(2)134 .byte 4 ## Abbreviation Code135 .byte 52 ## DW_TAG_variable136 .byte 0 ## DW_CHILDREN_no137 .byte 2 ## DW_AT_location138 .byte 24 ## DW_FORM_exprloc139 .byte 3 ## DW_AT_name140 .byte 14 ## DW_FORM_strp141 .byte 58 ## DW_AT_decl_file142 .byte 11 ## DW_FORM_data1143 .byte 59 ## DW_AT_decl_line144 .byte 11 ## DW_FORM_data1145 .byte 73 ## DW_AT_type146 .byte 19 ## DW_FORM_ref4147 .byte 0 ## EOM(1)148 .byte 0 ## EOM(2)149 .byte 5 ## Abbreviation Code150 .byte 36 ## DW_TAG_base_type151 .byte 0 ## DW_CHILDREN_no152 .byte 3 ## DW_AT_name153 .byte 14 ## DW_FORM_strp154 .byte 62 ## DW_AT_encoding155 .byte 11 ## DW_FORM_data1156 .byte 11 ## DW_AT_byte_size157 .byte 11 ## DW_FORM_data1158 .byte 0 ## EOM(1)159 .byte 0 ## EOM(2)160 .byte 0 ## EOM(3)161 .section __DWARF,__debug_info,regular,debug162Lsection_info:163Lcu_begin0:164 .long 96 ## Length of Unit165 .short 4 ## DWARF version number166Lset0 = Lsection_abbrev-Lsection_abbrev ## Offset Into Abbrev. Section167 .long Lset0168 .byte 8 ## Address Size (in bytes)169 .byte 1 ## Abbrev [1] 0xb:0x59 DW_TAG_compile_unit170 .long 0 ## DW_AT_producer171 .short 12 ## DW_AT_language172 .long 55 ## DW_AT_name173Lset1 = Lline_table_start0-Lsection_line ## DW_AT_stmt_list174 .long Lset1175 .long 61 ## DW_AT_comp_dir176 .quad Lfunc_begin0 ## DW_AT_low_pc177Lset2 = Lfunc_end0-Lfunc_begin0 ## DW_AT_high_pc178 .long Lset2179 .byte 2 ## Abbrev [2] 0x2a:0x32 DW_TAG_subprogram180 .quad Lfunc_begin0 ## DW_AT_low_pc181Lset3 = Lfunc_end0-Lfunc_begin0 ## DW_AT_high_pc182 .long Lset3183 .byte 1 ## DW_AT_frame_base184 .byte 86185 .long 74 ## DW_AT_name186 .byte 1 ## DW_AT_decl_file187 .byte 1 ## DW_AT_decl_line188 ## DW_AT_external189 .byte 3 ## Abbrev [3] 0x3f:0x1c DW_TAG_lexical_block190 .quad Ltmp0 ## DW_AT_low_pc191Lset4 = Ltmp1-Ltmp0 ## DW_AT_high_pc192 .long Lset4193 .byte 4 ## Abbrev [4] 0x4c:0xe DW_TAG_variable194 .byte 2 ## DW_AT_location195 .byte 145196 .byte 124197 .long 78 ## DW_AT_name198 .byte 1 ## DW_AT_decl_file199 .byte 3 ## DW_AT_decl_line200 .long 92 ## DW_AT_type201 .byte 0 ## End Of Children Mark202 .byte 0 ## End Of Children Mark203 .byte 5 ## Abbrev [5] 0x5c:0x7 DW_TAG_base_type204 .long 80 ## DW_AT_name205 .byte 5 ## DW_AT_encoding206 .byte 4 ## DW_AT_byte_size207 .byte 0 ## End Of Children Mark208 .section __DWARF,__debug_ranges,regular,debug209Ldebug_range:210 .section __DWARF,__debug_macinfo,regular,debug211Ldebug_macinfo:212Lcu_macro_begin0:213 .byte 0 ## End Of Macro List Mark214 .section __DWARF,__apple_names,regular,debug215Lnames_begin:216 .long 1212240712 ## Header Magic217 .short 1 ## Header Version218 .short 0 ## Header Hash Function219 .long 1 ## Header Bucket Count220 .long 1 ## Header Hash Count221 .long 12 ## Header Data Length222 .long 0 ## HeaderData Die Offset Base223 .long 1 ## HeaderData Atom Count224 .short 1 ## DW_ATOM_die_offset225 .short 6 ## DW_FORM_data4226 .long 0 ## Bucket 0227 .long 193491849 ## Hash in Bucket 0228 .long LNames0-Lnames_begin ## Offset in Bucket 0229LNames0:230 .long 74 ## foo231 .long 1 ## Num DIEs232 .long 42233 .long 0234 .section __DWARF,__apple_objc,regular,debug235Lobjc_begin:236 .long 1212240712 ## Header Magic237 .short 1 ## Header Version238 .short 0 ## Header Hash Function239 .long 1 ## Header Bucket Count240 .long 0 ## Header Hash Count241 .long 12 ## Header Data Length242 .long 0 ## HeaderData Die Offset Base243 .long 1 ## HeaderData Atom Count244 .short 1 ## DW_ATOM_die_offset245 .short 6 ## DW_FORM_data4246 .long -1 ## Bucket 0247 .section __DWARF,__apple_namespac,regular,debug248Lnamespac_begin:249 .long 1212240712 ## Header Magic250 .short 1 ## Header Version251 .short 0 ## Header Hash Function252 .long 1 ## Header Bucket Count253 .long 0 ## Header Hash Count254 .long 12 ## Header Data Length255 .long 0 ## HeaderData Die Offset Base256 .long 1 ## HeaderData Atom Count257 .short 1 ## DW_ATOM_die_offset258 .short 6 ## DW_FORM_data4259 .long -1 ## Bucket 0260 .section __DWARF,__apple_types,regular,debug261Ltypes_begin:262 .long 1212240712 ## Header Magic263 .short 1 ## Header Version264 .short 0 ## Header Hash Function265 .long 1 ## Header Bucket Count266 .long 1 ## Header Hash Count267 .long 20 ## Header Data Length268 .long 0 ## HeaderData Die Offset Base269 .long 3 ## HeaderData Atom Count270 .short 1 ## DW_ATOM_die_offset271 .short 6 ## DW_FORM_data4272 .short 3 ## DW_ATOM_die_tag273 .short 5 ## DW_FORM_data2274 .short 4 ## DW_ATOM_type_flags275 .short 11 ## DW_FORM_data1276 .long 0 ## Bucket 0277 .long 193495088 ## Hash in Bucket 0278 .long Ltypes0-Ltypes_begin ## Offset in Bucket 0279Ltypes0:280 .long 80 ## int281 .long 1 ## Num DIEs282 .long 92283 .short 36284 .byte 0285 .long 0286 287.subsections_via_symbols288 .section __DWARF,__debug_line,regular,debug289Lsection_line:290Lline_table_start0:291