230 lines · plain
1# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \2# RUN: | llvm-dwarfdump --debug-info --debug-line - \3# RUN: | FileCheck %s4# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \5# RUN: | llvm-dwarfdump --debug-info --debug-line - -o %t6# RUN: cat %t | FileCheck %s7 8# CHECK-NOT: .debug_abbrev contents:9#10# CHECK: .debug_info contents:11# CHECK: DW_TAG_compile_unit12# CHECK-NOT: DW_FORM13# CHECK: DW_AT_name ("brief.c")14# CHECK: DW_AT_name ("main")15# CHECK: DW_AT_name ("int")16# CHECK-NOT: debug_str17# CHECK-NOT: DW_AT_type {{.*}} =>18 19# CHECK: Address Line Column File ISA Discriminator OpIndex Flags20# CHECK-NEXT:------------------ ------ ------ ------ --- ------------- ------- -------------21# CHECK-NEXT:0x0000000000000000 1 0 1 0 0 0 is_stmt22# CHECK-NEXT:0x0000000000000006 1 12 1 0 0 0 is_stmt prologue_end23# CHECK-NEXT:0x0000000000000008 1 12 1 0 0 0 is_stmt end_sequence24 25# CHECK-NOT: {{.*}} contents:26 27# This test is meant to verify that without specifying -verbose DW_FORMs and28# abbreviation codes are hidden from .debug_info section. Furthermore it29# verifies that it also hides .debug_str and die reference offsets into the CU30# and that the .debug_line table is printed rather than the opcodes.31 32 .section __TEXT,__text,regular,pure_instructions33 .macosx_version_min 10, 1234 .globl _main ## -- Begin function main35 .p2align 4, 0x9036_main: ## @main37Lfunc_begin0:38 .file 1 "brief.c"39 .loc 1 1 0 ## brief.c:1:040 .cfi_startproc41## %bb.0: ## %entry42 pushq %rbp43 .cfi_def_cfa_offset 1644 .cfi_offset %rbp, -1645 movq %rsp, %rbp46 .cfi_def_cfa_register %rbp47 xorl %eax, %eax48Ltmp0:49 .loc 1 1 12 prologue_end ## brief.c:1:1250 popq %rbp51 retq52Ltmp1:53Lfunc_end0:54 .cfi_endproc55 ## -- End function56 .section __DWARF,__debug_str,regular,debug57Linfo_string:58 .asciz "clang version 6.0.0 (trunk 311115) (llvm/trunk 311188)" ## string offset=059 .asciz "brief.c" ## string offset=5560 .asciz "/private/tmp" ## string offset=6361 .asciz "main" ## string offset=7662 .asciz "int" ## string offset=8163 .section __DWARF,__debug_abbrev,regular,debug64Lsection_abbrev:65 .byte 1 ## Abbreviation Code66 .byte 17 ## DW_TAG_compile_unit67 .byte 1 ## DW_CHILDREN_yes68 .byte 37 ## DW_AT_producer69 .byte 14 ## DW_FORM_strp70 .byte 19 ## DW_AT_language71 .byte 5 ## DW_FORM_data272 .byte 3 ## DW_AT_name73 .byte 14 ## DW_FORM_strp74 .byte 16 ## DW_AT_stmt_list75 .byte 23 ## DW_FORM_sec_offset76 .byte 27 ## DW_AT_comp_dir77 .byte 14 ## DW_FORM_strp78 .byte 17 ## DW_AT_low_pc79 .byte 1 ## DW_FORM_addr80 .byte 18 ## DW_AT_high_pc81 .byte 6 ## DW_FORM_data482 .byte 0 ## EOM(1)83 .byte 0 ## EOM(2)84 .byte 2 ## Abbreviation Code85 .byte 46 ## DW_TAG_subprogram86 .byte 0 ## DW_CHILDREN_no87 .byte 17 ## DW_AT_low_pc88 .byte 1 ## DW_FORM_addr89 .byte 18 ## DW_AT_high_pc90 .byte 6 ## DW_FORM_data491 .byte 64 ## DW_AT_frame_base92 .byte 24 ## DW_FORM_exprloc93 .byte 3 ## DW_AT_name94 .byte 14 ## DW_FORM_strp95 .byte 58 ## DW_AT_decl_file96 .byte 11 ## DW_FORM_data197 .byte 59 ## DW_AT_decl_line98 .byte 11 ## DW_FORM_data199 .byte 73 ## DW_AT_type100 .byte 19 ## DW_FORM_ref4101 .byte 63 ## DW_AT_external102 .byte 25 ## DW_FORM_flag_present103 .byte 0 ## EOM(1)104 .byte 0 ## EOM(2)105 .byte 3 ## Abbreviation Code106 .byte 36 ## DW_TAG_base_type107 .byte 0 ## DW_CHILDREN_no108 .byte 3 ## DW_AT_name109 .byte 14 ## DW_FORM_strp110 .byte 62 ## DW_AT_encoding111 .byte 11 ## DW_FORM_data1112 .byte 11 ## DW_AT_byte_size113 .byte 11 ## DW_FORM_data1114 .byte 0 ## EOM(1)115 .byte 0 ## EOM(2)116 .byte 0 ## EOM(3)117 .section __DWARF,__debug_info,regular,debug118Lsection_info:119Lcu_begin0:120 .long 71 ## Length of Unit121 .short 4 ## DWARF version number122Lset0 = Lsection_abbrev-Lsection_abbrev ## Offset Into Abbrev. Section123 .long Lset0124 .byte 8 ## Address Size (in bytes)125 .byte 1 ## Abbrev [1] 0xb:0x40 DW_TAG_compile_unit126 .long 0 ## DW_AT_producer127 .short 12 ## DW_AT_language128 .long 55 ## DW_AT_name129Lset1 = Lline_table_start0-Lsection_line ## DW_AT_stmt_list130 .long Lset1131 .long 63 ## DW_AT_comp_dir132 .quad Lfunc_begin0 ## DW_AT_low_pc133Lset2 = Lfunc_end0-Lfunc_begin0 ## DW_AT_high_pc134 .long Lset2135 .byte 2 ## Abbrev [2] 0x2a:0x19 DW_TAG_subprogram136 .quad Lfunc_begin0 ## DW_AT_low_pc137Lset3 = Lfunc_end0-Lfunc_begin0 ## DW_AT_high_pc138 .long Lset3139 .byte 1 ## DW_AT_frame_base140 .byte 86141 .long 76 ## DW_AT_name142 .byte 1 ## DW_AT_decl_file143 .byte 1 ## DW_AT_decl_line144 .long 67 ## DW_AT_type145 ## DW_AT_external146 .byte 3 ## Abbrev [3] 0x43:0x7 DW_TAG_base_type147 .long 81 ## DW_AT_name148 .byte 5 ## DW_AT_encoding149 .byte 4 ## DW_AT_byte_size150 .byte 0 ## End Of Children Mark151 .section __DWARF,__debug_ranges,regular,debug152Ldebug_range:153 .section __DWARF,__apple_names,regular,debug154Lnames_begin:155 .long 1212240712 ## Header Magic156 .short 1 ## Header Version157 .short 0 ## Header Hash Function158 .long 1 ## Header Bucket Count159 .long 1 ## Header Hash Count160 .long 12 ## Header Data Length161 .long 0 ## HeaderData Die Offset Base162 .long 1 ## HeaderData Atom Count163 .short 1 ## DW_ATOM_die_offset164 .short 6 ## DW_FORM_data4165 .long 0 ## Bucket 0166 .long 2090499946 ## Hash in Bucket 0167 .long LNames0-Lnames_begin ## Offset in Bucket 0168LNames0:169 .long 76 ## main170 .long 1 ## Num DIEs171 .long 42172 .long 0173 .section __DWARF,__apple_objc,regular,debug174Lobjc_begin:175 .long 1212240712 ## Header Magic176 .short 1 ## Header Version177 .short 0 ## Header Hash Function178 .long 1 ## Header Bucket Count179 .long 0 ## Header Hash Count180 .long 12 ## Header Data Length181 .long 0 ## HeaderData Die Offset Base182 .long 1 ## HeaderData Atom Count183 .short 1 ## DW_ATOM_die_offset184 .short 6 ## DW_FORM_data4185 .long -1 ## Bucket 0186 .section __DWARF,__apple_namespac,regular,debug187Lnamespac_begin:188 .long 1212240712 ## Header Magic189 .short 1 ## Header Version190 .short 0 ## Header Hash Function191 .long 1 ## Header Bucket Count192 .long 0 ## Header Hash Count193 .long 12 ## Header Data Length194 .long 0 ## HeaderData Die Offset Base195 .long 1 ## HeaderData Atom Count196 .short 1 ## DW_ATOM_die_offset197 .short 6 ## DW_FORM_data4198 .long -1 ## Bucket 0199 .section __DWARF,__apple_types,regular,debug200Ltypes_begin:201 .long 1212240712 ## Header Magic202 .short 1 ## Header Version203 .short 0 ## Header Hash Function204 .long 1 ## Header Bucket Count205 .long 1 ## Header Hash Count206 .long 20 ## Header Data Length207 .long 0 ## HeaderData Die Offset Base208 .long 3 ## HeaderData Atom Count209 .short 1 ## DW_ATOM_die_offset210 .short 6 ## DW_FORM_data4211 .short 3 ## DW_ATOM_die_tag212 .short 5 ## DW_FORM_data2213 .short 4 ## DW_ATOM_type_flags214 .short 11 ## DW_FORM_data1215 .long 0 ## Bucket 0216 .long 193495088 ## Hash in Bucket 0217 .long Ltypes0-Ltypes_begin ## Offset in Bucket 0218Ltypes0:219 .long 81 ## int220 .long 1 ## Num DIEs221 .long 67222 .short 36223 .byte 0224 .long 0225 226.subsections_via_symbols227 .section __DWARF,__debug_line,regular,debug228Lsection_line:229Lline_table_start0:230