340 lines · plain
1# clang++ -g2 -fdebug-types-section -gdwarf-4 -ffunction-sections2# struct Foo {3# int i;4# };5# Foo f2;6 7 .text8 .file "main.cpp"9 .section .text._Z3fooi,"ax",@progbits10 .globl _Z3fooi # -- Begin function _Z3fooi11 .p2align 4, 0x9012 .type _Z3fooi,@function13_Z3fooi: # @_Z3fooi14.Lfunc_begin0:15 .file 1 "/test" "main.cpp"16 .loc 1 1 0 # main.cpp:1:017 .cfi_startproc18# %bb.0: # %entry19 pushq %rbp20 .cfi_def_cfa_offset 1621 .cfi_offset %rbp, -1622 movq %rsp, %rbp23 .cfi_def_cfa_register %rbp24 movl %edi, -8(%rbp)25.Ltmp0:26 .loc 1 2 9 prologue_end # main.cpp:2:927 cmpl $1, -8(%rbp)28.Ltmp1:29 .loc 1 2 7 is_stmt 0 # main.cpp:2:730 jne .LBB0_231# %bb.1: # %if.then32.Ltmp2:33 .loc 1 3 5 is_stmt 1 # main.cpp:3:534 movl $2, -4(%rbp)35 jmp .LBB0_336.Ltmp3:37.LBB0_2: # %if.end38 .loc 1 4 3 # main.cpp:4:339 movl $1, -4(%rbp)40.LBB0_3: # %return41 .loc 1 5 1 # main.cpp:5:142 movl -4(%rbp), %eax43 .loc 1 5 1 epilogue_begin is_stmt 0 # main.cpp:5:144 popq %rbp45 .cfi_def_cfa %rsp, 846 retq47.Ltmp4:48.Lfunc_end0:49 .size _Z3fooi, .Lfunc_end0-_Z3fooi50 .cfi_endproc51 # -- End function52 .section .text.main,"ax",@progbits53 .globl main # -- Begin function main54 .p2align 4, 0x9055 .type main,@function56main: # @main57.Lfunc_begin1:58 .loc 1 6 0 is_stmt 1 # main.cpp:6:059 .cfi_startproc60# %bb.0: # %entry61 pushq %rbp62 .cfi_def_cfa_offset 1663 .cfi_offset %rbp, -1664 movq %rsp, %rbp65 .cfi_def_cfa_register %rbp66 subq $32, %rsp67 movl $0, -4(%rbp)68 movl %edi, -8(%rbp)69 movq %rsi, -16(%rbp)70.Ltmp5:71 .loc 1 7 11 prologue_end # main.cpp:7:1172 movl -8(%rbp), %eax73 .loc 1 7 7 is_stmt 0 # main.cpp:7:774 movl %eax, -20(%rbp)75.Ltmp6:76 .loc 1 8 9 is_stmt 1 # main.cpp:8:977 cmpl $3, -20(%rbp)78.Ltmp7:79 .loc 1 8 7 is_stmt 0 # main.cpp:8:780 jne .LBB1_281# %bb.1: # %if.then82.Ltmp8:83 .loc 1 9 13 is_stmt 1 # main.cpp:9:1384 movl -8(%rbp), %edi85 .loc 1 9 9 is_stmt 0 # main.cpp:9:986 callq _Z3fooi87 .loc 1 9 6 # main.cpp:9:688 addl -20(%rbp), %eax89 movl %eax, -20(%rbp)90.Ltmp9:91.LBB1_2: # %if.end92 .loc 1 10 10 is_stmt 1 # main.cpp:10:1093 movl -20(%rbp), %eax94 .loc 1 10 3 epilogue_begin is_stmt 0 # main.cpp:10:395 addq $32, %rsp96 popq %rbp97 .cfi_def_cfa %rsp, 898 retq99.Ltmp10:100.Lfunc_end1:101 .size main, .Lfunc_end1-main102 .cfi_endproc103 # -- End function104 .section .debug_abbrev,"",@progbits105 .byte 1 # Abbreviation Code106 .byte 17 # DW_TAG_compile_unit107 .byte 1 # DW_CHILDREN_yes108 .byte 37 # DW_AT_producer109 .byte 14 # DW_FORM_strp110 .byte 19 # DW_AT_language111 .byte 5 # DW_FORM_data2112 .byte 3 # DW_AT_name113 .byte 14 # DW_FORM_strp114 .byte 16 # DW_AT_stmt_list115 .byte 23 # DW_FORM_sec_offset116 .byte 27 # DW_AT_comp_dir117 .byte 14 # DW_FORM_strp118 .byte 17 # DW_AT_low_pc119 .byte 1 # DW_FORM_addr120 .byte 85 # DW_AT_ranges121 .byte 23 # DW_FORM_sec_offset122 .byte 0 # EOM(1)123 .byte 0 # EOM(2)124 .byte 2 # Abbreviation Code125 .byte 46 # DW_TAG_subprogram126 .byte 1 # DW_CHILDREN_yes127 .byte 17 # DW_AT_low_pc128 .byte 1 # DW_FORM_addr129 .byte 18 # DW_AT_high_pc130 .byte 6 # DW_FORM_data4131 .byte 64 # DW_AT_frame_base132 .byte 24 # DW_FORM_exprloc133 .byte 110 # DW_AT_linkage_name134 .byte 14 # DW_FORM_strp135 .byte 3 # DW_AT_name136 .byte 14 # DW_FORM_strp137 .byte 58 # DW_AT_decl_file138 .byte 11 # DW_FORM_data1139 .byte 59 # DW_AT_decl_line140 .byte 11 # DW_FORM_data1141 .byte 73 # DW_AT_type142 .byte 19 # DW_FORM_ref4143 .byte 63 # DW_AT_external144 .byte 25 # DW_FORM_flag_present145 .byte 0 # EOM(1)146 .byte 0 # EOM(2)147 .byte 3 # Abbreviation Code148 .byte 5 # DW_TAG_formal_parameter149 .byte 0 # DW_CHILDREN_no150 .byte 2 # DW_AT_location151 .byte 24 # DW_FORM_exprloc152 .byte 3 # DW_AT_name153 .byte 14 # DW_FORM_strp154 .byte 58 # DW_AT_decl_file155 .byte 11 # DW_FORM_data1156 .byte 59 # DW_AT_decl_line157 .byte 11 # DW_FORM_data1158 .byte 73 # DW_AT_type159 .byte 19 # DW_FORM_ref4160 .byte 0 # EOM(1)161 .byte 0 # EOM(2)162 .byte 4 # Abbreviation Code163 .byte 46 # DW_TAG_subprogram164 .byte 1 # DW_CHILDREN_yes165 .byte 17 # DW_AT_low_pc166 .byte 1 # DW_FORM_addr167 .byte 18 # DW_AT_high_pc168 .byte 6 # DW_FORM_data4169 .byte 64 # DW_AT_frame_base170 .byte 24 # DW_FORM_exprloc171 .byte 3 # DW_AT_name172 .byte 14 # DW_FORM_strp173 .byte 58 # DW_AT_decl_file174 .byte 11 # DW_FORM_data1175 .byte 59 # DW_AT_decl_line176 .byte 11 # DW_FORM_data1177 .byte 73 # DW_AT_type178 .byte 19 # DW_FORM_ref4179 .byte 63 # DW_AT_external180 .byte 25 # DW_FORM_flag_present181 .byte 0 # EOM(1)182 .byte 0 # EOM(2)183 .byte 5 # Abbreviation Code184 .byte 52 # DW_TAG_variable185 .byte 0 # DW_CHILDREN_no186 .byte 2 # DW_AT_location187 .byte 24 # DW_FORM_exprloc188 .byte 3 # DW_AT_name189 .byte 14 # DW_FORM_strp190 .byte 58 # DW_AT_decl_file191 .byte 11 # DW_FORM_data1192 .byte 59 # DW_AT_decl_line193 .byte 11 # DW_FORM_data1194 .byte 73 # DW_AT_type195 .byte 19 # DW_FORM_ref4196 .byte 0 # EOM(1)197 .byte 0 # EOM(2)198 .byte 6 # Abbreviation Code199 .byte 36 # DW_TAG_base_type200 .byte 0 # DW_CHILDREN_no201 .byte 3 # DW_AT_name202 .byte 14 # DW_FORM_strp203 .byte 62 # DW_AT_encoding204 .byte 11 # DW_FORM_data1205 .byte 11 # DW_AT_byte_size206 .byte 11 # DW_FORM_data1207 .byte 0 # EOM(1)208 .byte 0 # EOM(2)209 .byte 7 # Abbreviation Code210 .byte 15 # DW_TAG_pointer_type211 .byte 0 # DW_CHILDREN_no212 .byte 73 # DW_AT_type213 .byte 19 # DW_FORM_ref4214 .byte 0 # EOM(1)215 .byte 0 # EOM(2)216 .byte 0 # EOM(3)217 .section .debug_info,"",@progbits218.Lcu_begin0:219 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit220.Ldebug_info_start0:221 .short 4 # DWARF version number222 .long .debug_abbrev # Offset Into Abbrev. Section223 .byte 8 # Address Size (in bytes)224 .byte 1 # Abbrev [1] 0xb:0xa8 DW_TAG_compile_unit225 .long .Linfo_string0 # DW_AT_producer226 .short 33 # DW_AT_language227 .long .Linfo_string1 # DW_AT_name228 .long .Lline_table_start0 # DW_AT_stmt_list229 .long .Linfo_string2 # DW_AT_comp_dir230 .quad 0 # DW_AT_low_pc231 .long .Ldebug_ranges0 # DW_AT_ranges232 .byte 2 # Abbrev [2] 0x2a:0x2c DW_TAG_subprogram233 .quad .Lfunc_begin0 # DW_AT_low_pc234 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc235 .byte 1 # DW_AT_frame_base236 .byte 86237 .long .Linfo_string3 # DW_AT_linkage_name238 .long .Linfo_string4 # DW_AT_name239 .byte 1 # DW_AT_decl_file240 .byte 1 # DW_AT_decl_line241 .long 154 # DW_AT_type242 # DW_AT_external243 .byte 3 # Abbrev [3] 0x47:0xe DW_TAG_formal_parameter244 .byte 2 # DW_AT_location245 .byte 145246 .byte 120247 .long .Linfo_string7 # DW_AT_name248 .byte 1 # DW_AT_decl_file249 .byte 1 # DW_AT_decl_line250 .long 154 # DW_AT_type251 .byte 0 # End Of Children Mark252 .byte 4 # Abbrev [4] 0x56:0x44 DW_TAG_subprogram253 .quad .Lfunc_begin1 # DW_AT_low_pc254 .long .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc255 .byte 1 # DW_AT_frame_base256 .byte 86257 .long .Linfo_string6 # DW_AT_name258 .byte 1 # DW_AT_decl_file259 .byte 6 # DW_AT_decl_line260 .long 154 # DW_AT_type261 # DW_AT_external262 .byte 3 # Abbrev [3] 0x6f:0xe DW_TAG_formal_parameter263 .byte 2 # DW_AT_location264 .byte 145265 .byte 120266 .long .Linfo_string8 # DW_AT_name267 .byte 1 # DW_AT_decl_file268 .byte 6 # DW_AT_decl_line269 .long 154 # DW_AT_type270 .byte 3 # Abbrev [3] 0x7d:0xe DW_TAG_formal_parameter271 .byte 2 # DW_AT_location272 .byte 145273 .byte 112274 .long .Linfo_string9 # DW_AT_name275 .byte 1 # DW_AT_decl_file276 .byte 6 # DW_AT_decl_line277 .long 161 # DW_AT_type278 .byte 5 # Abbrev [5] 0x8b:0xe DW_TAG_variable279 .byte 2 # DW_AT_location280 .byte 145281 .byte 108282 .long .Linfo_string11 # DW_AT_name283 .byte 1 # DW_AT_decl_file284 .byte 7 # DW_AT_decl_line285 .long 154 # DW_AT_type286 .byte 0 # End Of Children Mark287 .byte 6 # Abbrev [6] 0x9a:0x7 DW_TAG_base_type288 .long .Linfo_string5 # DW_AT_name289 .byte 5 # DW_AT_encoding290 .byte 4 # DW_AT_byte_size291 .byte 7 # Abbrev [7] 0xa1:0x5 DW_TAG_pointer_type292 .long 166 # DW_AT_type293 .byte 7 # Abbrev [7] 0xa6:0x5 DW_TAG_pointer_type294 .long 171 # DW_AT_type295 .byte 6 # Abbrev [6] 0xab:0x7 DW_TAG_base_type296 .long .Linfo_string10 # DW_AT_name297 .byte 6 # DW_AT_encoding298 .byte 1 # DW_AT_byte_size299 .byte 0 # End Of Children Mark300.Ldebug_info_end0:301 .section .debug_ranges,"",@progbits302.Ldebug_ranges0:303 .quad .Lfunc_begin0304 .quad .Lfunc_end0305 .quad .Lfunc_begin1306 .quad .Lfunc_end1307 .quad 0308 .quad 0309 .section .debug_str,"MS",@progbits,1310.Linfo_string0:311 .asciz "clang version 18.0.0git" # string offset=0312.Linfo_string1:313 .asciz "main.cpp" # string offset=24314.Linfo_string2:315 .asciz "/test" # string offset=33316.Linfo_string3:317 .asciz "_Z3fooi" # string offset=71318.Linfo_string4:319 .asciz "foo" # string offset=79320.Linfo_string5:321 .asciz "int" # string offset=83322.Linfo_string6:323 .asciz "main" # string offset=87324.Linfo_string7:325 .asciz "i" # string offset=92326.Linfo_string8:327 .asciz "argc" # string offset=94328.Linfo_string9:329 .asciz "argv" # string offset=99330.Linfo_string10:331 .asciz "char" # string offset=104332.Linfo_string11:333 .asciz "j" # string offset=109334 .ident "clang version 18.0.0git"335 .section ".note.GNU-stack","",@progbits336 .addrsig337 .addrsig_sym _Z3fooi338 .section .debug_line,"",@progbits339.Lline_table_start0:340