421 lines · plain
1# int fooVar = 0;2# void useFoo(int * x) {3# *x += 4;4# }5# int foo(int argc) {6# int x = argc;7# useFoo(&x);8# return x;9# }10 11 .text12 .file "helper.cpp"13 .file 0 "." "helper.cpp" md5 0xf1508be63cfcbaf913e2dfef3cd5bccc14 .globl _Z6useFooPi # -- Begin function _Z6useFooPi15 .p2align 4, 0x9016 .type _Z6useFooPi,@function17_Z6useFooPi: # @_Z6useFooPi18.Lfunc_begin0:19 .loc 0 2 0 # helper.cpp:2:020 .cfi_startproc21# %bb.0: # %entry22 #DEBUG_VALUE: useFoo:x <- $rdi23 .loc 0 3 5 prologue_end # helper.cpp:3:524 addl $4, (%rdi)25 .loc 0 4 2 # helper.cpp:4:226 retq27.Ltmp0:28.Lfunc_end0:29 .size _Z6useFooPi, .Lfunc_end0-_Z6useFooPi30 .cfi_endproc31 # -- End function32 .globl _Z3fooi # -- Begin function _Z3fooi33 .p2align 4, 0x9034 .type _Z3fooi,@function35_Z3fooi: # @_Z3fooi36.Lfunc_begin1:37 .loc 0 6 0 # helper.cpp:6:038 .cfi_startproc39# %bb.0: # %entry40 #DEBUG_VALUE: foo:argc <- $edi41 #DEBUG_VALUE: foo:x <- $edi42 # kill: def $edi killed $edi def $rdi43 #DEBUG_VALUE: useFoo:x <- undef44 .loc 0 3 5 prologue_end # helper.cpp:3:545 leal 4(%rdi), %eax46.Ltmp1:47 #DEBUG_VALUE: foo:x <- $eax48 .loc 0 9 5 # helper.cpp:9:549 retq50.Ltmp2:51.Lfunc_end1:52 .size _Z3fooi, .Lfunc_end1-_Z3fooi53 .cfi_endproc54 # -- End function55 .type fooVar,@object # @fooVar56 .bss57 .globl fooVar58 .p2align 259fooVar:60 .long 0 # 0x061 .size fooVar, 462 63 .section .debug_loclists,"",@progbits64 .long .Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length65.Ldebug_list_header_start0:66 .short 5 # Version67 .byte 8 # Address size68 .byte 0 # Segment selector size69 .long 1 # Offset entry count70.Lloclists_table_base0:71 .long .Ldebug_loc0-.Lloclists_table_base072.Ldebug_loc0:73 .byte 4 # DW_LLE_offset_pair74 .uleb128 .Lfunc_begin1-.Lfunc_begin0 # starting offset75 .uleb128 .Ltmp1-.Lfunc_begin0 # ending offset76 .byte 1 # Loc expr size77 .byte 85 # super-register DW_OP_reg578 .byte 4 # DW_LLE_offset_pair79 .uleb128 .Ltmp1-.Lfunc_begin0 # starting offset80 .uleb128 .Lfunc_end1-.Lfunc_begin0 # ending offset81 .byte 1 # Loc expr size82 .byte 80 # super-register DW_OP_reg083 .byte 0 # DW_LLE_end_of_list84.Ldebug_list_header_end0:85 .section .debug_abbrev,"",@progbits86 .byte 1 # Abbreviation Code87 .byte 17 # DW_TAG_compile_unit88 .byte 1 # DW_CHILDREN_yes89 .byte 37 # DW_AT_producer90 .byte 37 # DW_FORM_strx191 .byte 19 # DW_AT_language92 .byte 5 # DW_FORM_data293 .byte 3 # DW_AT_name94 .byte 37 # DW_FORM_strx195 .byte 114 # DW_AT_str_offsets_base96 .byte 23 # DW_FORM_sec_offset97 .byte 16 # DW_AT_stmt_list98 .byte 23 # DW_FORM_sec_offset99 .byte 27 # DW_AT_comp_dir100 .byte 37 # DW_FORM_strx1101 .byte 17 # DW_AT_low_pc102 .byte 27 # DW_FORM_addrx103 .byte 18 # DW_AT_high_pc104 .byte 6 # DW_FORM_data4105 .byte 115 # DW_AT_addr_base106 .byte 23 # DW_FORM_sec_offset107 .byte 0 # EOM(1)108 .byte 0 # EOM(2)109 .byte 2 # Abbreviation Code110 .byte 52 # DW_TAG_variable111 .byte 0 # DW_CHILDREN_no112 .byte 3 # DW_AT_name113 .byte 37 # DW_FORM_strx1114 .byte 73 # DW_AT_type115 .byte 19 # DW_FORM_ref4116 .byte 63 # DW_AT_external117 .byte 25 # DW_FORM_flag_present118 .byte 58 # DW_AT_decl_file119 .byte 11 # DW_FORM_data1120 .byte 59 # DW_AT_decl_line121 .byte 11 # DW_FORM_data1122 .byte 2 # DW_AT_location123 .byte 24 # DW_FORM_exprloc124 .byte 0 # EOM(1)125 .byte 0 # EOM(2)126 .byte 3 # Abbreviation Code127 .byte 36 # DW_TAG_base_type128 .byte 0 # DW_CHILDREN_no129 .byte 3 # DW_AT_name130 .byte 37 # DW_FORM_strx1131 .byte 62 # DW_AT_encoding132 .byte 11 # DW_FORM_data1133 .byte 11 # DW_AT_byte_size134 .byte 11 # DW_FORM_data1135 .byte 0 # EOM(1)136 .byte 0 # EOM(2)137 .byte 4 # Abbreviation Code138 .byte 46 # DW_TAG_subprogram139 .byte 1 # DW_CHILDREN_yes140 .byte 17 # DW_AT_low_pc141 .byte 27 # DW_FORM_addrx142 .byte 18 # DW_AT_high_pc143 .byte 6 # DW_FORM_data4144 .byte 64 # DW_AT_frame_base145 .byte 24 # DW_FORM_exprloc146 .byte 122 # DW_AT_call_all_calls147 .byte 25 # DW_FORM_flag_present148 .byte 49 # DW_AT_abstract_origin149 .byte 19 # DW_FORM_ref4150 .byte 0 # EOM(1)151 .byte 0 # EOM(2)152 .byte 5 # Abbreviation Code153 .byte 5 # DW_TAG_formal_parameter154 .byte 0 # DW_CHILDREN_no155 .byte 2 # DW_AT_location156 .byte 24 # DW_FORM_exprloc157 .byte 49 # DW_AT_abstract_origin158 .byte 19 # DW_FORM_ref4159 .byte 0 # EOM(1)160 .byte 0 # EOM(2)161 .byte 6 # Abbreviation Code162 .byte 46 # DW_TAG_subprogram163 .byte 1 # DW_CHILDREN_yes164 .byte 110 # DW_AT_linkage_name165 .byte 37 # DW_FORM_strx1166 .byte 3 # DW_AT_name167 .byte 37 # DW_FORM_strx1168 .byte 58 # DW_AT_decl_file169 .byte 11 # DW_FORM_data1170 .byte 59 # DW_AT_decl_line171 .byte 11 # DW_FORM_data1172 .byte 63 # DW_AT_external173 .byte 25 # DW_FORM_flag_present174 .byte 32 # DW_AT_inline175 .byte 33 # DW_FORM_implicit_const176 .byte 1177 .byte 0 # EOM(1)178 .byte 0 # EOM(2)179 .byte 7 # Abbreviation Code180 .byte 5 # DW_TAG_formal_parameter181 .byte 0 # DW_CHILDREN_no182 .byte 3 # DW_AT_name183 .byte 37 # DW_FORM_strx1184 .byte 58 # DW_AT_decl_file185 .byte 11 # DW_FORM_data1186 .byte 59 # DW_AT_decl_line187 .byte 11 # DW_FORM_data1188 .byte 73 # DW_AT_type189 .byte 19 # DW_FORM_ref4190 .byte 0 # EOM(1)191 .byte 0 # EOM(2)192 .byte 8 # Abbreviation Code193 .byte 15 # DW_TAG_pointer_type194 .byte 0 # DW_CHILDREN_no195 .byte 73 # DW_AT_type196 .byte 19 # DW_FORM_ref4197 .byte 0 # EOM(1)198 .byte 0 # EOM(2)199 .byte 9 # Abbreviation Code200 .byte 46 # DW_TAG_subprogram201 .byte 1 # DW_CHILDREN_yes202 .byte 17 # DW_AT_low_pc203 .byte 27 # DW_FORM_addrx204 .byte 18 # DW_AT_high_pc205 .byte 6 # DW_FORM_data4206 .byte 64 # DW_AT_frame_base207 .byte 24 # DW_FORM_exprloc208 .byte 122 # DW_AT_call_all_calls209 .byte 25 # DW_FORM_flag_present210 .byte 110 # DW_AT_linkage_name211 .byte 37 # DW_FORM_strx1212 .byte 3 # DW_AT_name213 .byte 37 # DW_FORM_strx1214 .byte 58 # DW_AT_decl_file215 .byte 11 # DW_FORM_data1216 .byte 59 # DW_AT_decl_line217 .byte 11 # DW_FORM_data1218 .byte 73 # DW_AT_type219 .byte 19 # DW_FORM_ref4220 .byte 63 # DW_AT_external221 .byte 25 # DW_FORM_flag_present222 .byte 0 # EOM(1)223 .byte 0 # EOM(2)224 .byte 10 # Abbreviation Code225 .byte 5 # DW_TAG_formal_parameter226 .byte 0 # DW_CHILDREN_no227 .byte 2 # DW_AT_location228 .byte 24 # DW_FORM_exprloc229 .byte 3 # DW_AT_name230 .byte 37 # DW_FORM_strx1231 .byte 58 # DW_AT_decl_file232 .byte 11 # DW_FORM_data1233 .byte 59 # DW_AT_decl_line234 .byte 11 # DW_FORM_data1235 .byte 73 # DW_AT_type236 .byte 19 # DW_FORM_ref4237 .byte 0 # EOM(1)238 .byte 0 # EOM(2)239 .byte 11 # Abbreviation Code240 .byte 52 # DW_TAG_variable241 .byte 0 # DW_CHILDREN_no242 .byte 2 # DW_AT_location243 .byte 23 # DW_FORM_sec_offset244 .byte 3 # DW_AT_name245 .byte 37 # DW_FORM_strx1246 .byte 58 # DW_AT_decl_file247 .byte 11 # DW_FORM_data1248 .byte 59 # DW_AT_decl_line249 .byte 11 # DW_FORM_data1250 .byte 73 # DW_AT_type251 .byte 19 # DW_FORM_ref4252 .byte 0 # EOM(1)253 .byte 0 # EOM(2)254 .byte 12 # Abbreviation Code255 .byte 29 # DW_TAG_inlined_subroutine256 .byte 0 # DW_CHILDREN_no257 .byte 49 # DW_AT_abstract_origin258 .byte 19 # DW_FORM_ref4259 .byte 17 # DW_AT_low_pc260 .byte 27 # DW_FORM_addrx261 .byte 18 # DW_AT_high_pc262 .byte 6 # DW_FORM_data4263 .byte 88 # DW_AT_call_file264 .byte 11 # DW_FORM_data1265 .byte 89 # DW_AT_call_line266 .byte 11 # DW_FORM_data1267 .byte 87 # DW_AT_call_column268 .byte 11 # DW_FORM_data1269 .byte 0 # EOM(1)270 .byte 0 # EOM(2)271 .byte 0 # EOM(3)272 .section .debug_info,"",@progbits273.Lcu_begin0:274 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit275.Ldebug_info_start0:276 .short 5 # DWARF version number277 .byte 1 # DWARF Unit Type278 .byte 8 # Address Size (in bytes)279 .long .debug_abbrev # Offset Into Abbrev. Section280 .byte 1 # Abbrev [1] 0xc:0x83 DW_TAG_compile_unit281 .byte 0 # DW_AT_producer282 .short 33 # DW_AT_language283 .byte 1 # DW_AT_name284 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base285 .long .Lline_table_start0 # DW_AT_stmt_list286 .byte 2 # DW_AT_comp_dir287 .byte 1 # DW_AT_low_pc288 .long .Lfunc_end1-.Lfunc_begin0 # DW_AT_high_pc289 .long .Laddr_table_base0 # DW_AT_addr_base290 .byte 2 # Abbrev [2] 0x27:0xb DW_TAG_variable291 .byte 3 # DW_AT_name292 .long 46 # DW_AT_type293 # DW_AT_external294 .byte 0 # DW_AT_decl_file295 .byte 1 # DW_AT_decl_line296 .byte 2 # DW_AT_location297 .byte 161298 .byte 0299 .byte 3 # Abbrev [3] 0x32:0x4 DW_TAG_base_type300 .byte 4 # DW_AT_name301 .byte 5 # DW_AT_encoding302 .byte 4 # DW_AT_byte_size303 .byte 4 # Abbrev [4] 0x36:0x14 DW_TAG_subprogram304 .byte 1 # DW_AT_low_pc305 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc306 .byte 1 # DW_AT_frame_base307 .byte 87308 # DW_AT_call_all_calls309 .long 70 # DW_AT_abstract_origin310 .byte 5 # Abbrev [5] 0x42:0x7 DW_TAG_formal_parameter311 .byte 1 # DW_AT_location312 .byte 85313 .long 75 # DW_AT_abstract_origin314 .byte 0 # End Of Children Mark315 .byte 6 # Abbrev [6] 0x4a:0xe DW_TAG_subprogram316 .byte 5 # DW_AT_linkage_name317 .byte 6 # DW_AT_name318 .byte 0 # DW_AT_decl_file319 .byte 2 # DW_AT_decl_line320 # DW_AT_external321 # DW_AT_inline322 .byte 7 # Abbrev [7] 0x4f:0x8 DW_TAG_formal_parameter323 .byte 7 # DW_AT_name324 .byte 0 # DW_AT_decl_file325 .byte 2 # DW_AT_decl_line326 .long 84 # DW_AT_type327 .byte 0 # End Of Children Mark328 .byte 8 # Abbrev [8] 0x58:0x5 DW_TAG_pointer_type329 .long 46 # DW_AT_type330 .byte 9 # Abbrev [9] 0x5d:0x31 DW_TAG_subprogram331 .byte 2 # DW_AT_low_pc332 .long .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc333 .byte 1 # DW_AT_frame_base334 .byte 87335 # DW_AT_call_all_calls336 .byte 8 # DW_AT_linkage_name337 .byte 9 # DW_AT_name338 .byte 0 # DW_AT_decl_file339 .byte 6 # DW_AT_decl_line340 .long 46 # DW_AT_type341 # DW_AT_external342 .byte 10 # Abbrev [10] 0x6d:0xa DW_TAG_formal_parameter343 .byte 1 # DW_AT_location344 .byte 85345 .byte 10 # DW_AT_name346 .byte 0 # DW_AT_decl_file347 .byte 6 # DW_AT_decl_line348 .long 46 # DW_AT_type349 .byte 11 # Abbrev [11] 0x77:0x9 DW_TAG_variable350 .long .Ldebug_loc0 # DW_AT_location351 .byte 7 # DW_AT_name352 .byte 0 # DW_AT_decl_file353 .byte 7 # DW_AT_decl_line354 .long 46 # DW_AT_type355 .byte 12 # Abbrev [12] 0x80:0xd DW_TAG_inlined_subroutine356 .long 70 # DW_AT_abstract_origin357 .byte 2 # DW_AT_low_pc358 .long .Ltmp1-.Lfunc_begin1 # DW_AT_high_pc359 .byte 0 # DW_AT_call_file360 .byte 8 # DW_AT_call_line361 .byte 5 # DW_AT_call_column362 .byte 0 # End Of Children Mark363 .byte 0 # End Of Children Mark364.Ldebug_info_end0:365 .section .debug_str_offsets,"",@progbits366 .long 48 # Length of String Offsets Set367 .short 5368 .short 0369.Lstr_offsets_base0:370 .section .debug_str,"MS",@progbits,1371.Linfo_string0:372 .asciz "clang version 15.0.0" # string offset=0373.Linfo_string1:374 .asciz "helper.cpp" # string offset=134375.Linfo_string2:376 .asciz "." # string offset=145377.Linfo_string3:378 .asciz "fooVar" # string offset=183379.Linfo_string4:380 .asciz "int" # string offset=190381.Linfo_string5:382 .asciz "_Z6useFooPi" # string offset=194383.Linfo_string6:384 .asciz "useFoo" # string offset=206385.Linfo_string7:386 .asciz "x" # string offset=213387.Linfo_string8:388 .asciz "_Z3fooi" # string offset=215389.Linfo_string9:390 .asciz "foo" # string offset=223391.Linfo_string10:392 .asciz "argc" # string offset=227393 .section .debug_str_offsets,"",@progbits394 .long .Linfo_string0395 .long .Linfo_string1396 .long .Linfo_string2397 .long .Linfo_string3398 .long .Linfo_string4399 .long .Linfo_string5400 .long .Linfo_string6401 .long .Linfo_string7402 .long .Linfo_string8403 .long .Linfo_string9404 .long .Linfo_string10405 .section .debug_addr,"",@progbits406 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution407.Ldebug_addr_start0:408 .short 5 # DWARF version number409 .byte 8 # Address size410 .byte 0 # Segment selector size411.Laddr_table_base0:412 .quad fooVar413 .quad .Lfunc_begin0414 .quad .Lfunc_begin1415.Ldebug_addr_end0:416 .ident "clang version 15.0.0"417 .section ".note.GNU-stack","",@progbits418 .addrsig419 .section .debug_line,"",@progbits420.Lline_table_start0:421