425 lines · plain
1# clang++ helper.cpp -g -O2 -S2# int fooVar = 0;3# void useFoo(int * x) {4# *x += 4;5# }6#7# int foo(int argc) {8# int x = argc;9# useFoo(&x);10# return x;11# }12 .text13 .file "foo.cpp"14 .file 0 "/testLocListMultiple" "foo.cpp" md5 0x9410f31145d031fcc1f2464b809e409a15 .globl _Z6useFooPi # -- Begin function _Z6useFooPi16 .p2align 4, 0x9017 .type _Z6useFooPi,@function18_Z6useFooPi: # @_Z6useFooPi19.Lfunc_begin0:20 .loc 0 2 0 # foo.cpp:2:021 .cfi_startproc22# %bb.0: # %entry23 #DEBUG_VALUE: useFoo:x <- $rdi24 .loc 0 3 4 prologue_end # foo.cpp:3:425 addl $4, (%rdi)26 .loc 0 4 1 # foo.cpp:4:127 retq28.Ltmp0:29.Lfunc_end0:30 .size _Z6useFooPi, .Lfunc_end0-_Z6useFooPi31 .cfi_endproc32 # -- End function33 .globl _Z3fooi # -- Begin function _Z3fooi34 .p2align 4, 0x9035 .type _Z3fooi,@function36_Z3fooi: # @_Z3fooi37.Lfunc_begin1:38 .loc 0 6 0 # foo.cpp:6:039 .cfi_startproc40# %bb.0: # %entry41 #DEBUG_VALUE: foo:argc <- $edi42 #DEBUG_VALUE: foo:x <- $edi43 # kill: def $edi killed $edi def $rdi44 #DEBUG_VALUE: useFoo:x <- undef45 .loc 0 3 4 prologue_end # foo.cpp:3:446 leal 4(%rdi), %eax47.Ltmp1:48 #DEBUG_VALUE: foo:x <- $eax49 .loc 0 9 4 # foo.cpp:9:450 retq51.Ltmp2:52.Lfunc_end1:53 .size _Z3fooi, .Lfunc_end1-_Z3fooi54 .cfi_endproc55 # -- End function56 .type fooVar,@object # @fooVar57 .bss58 .globl fooVar59 .p2align 260fooVar:61 .long 0 # 0x062 .size fooVar, 463 64 .section .debug_loclists,"",@progbits65 .long .Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length66.Ldebug_list_header_start0:67 .short 5 # Version68 .byte 8 # Address size69 .byte 0 # Segment selector size70 .long 1 # Offset entry count71.Lloclists_table_base0:72 .long .Ldebug_loc0-.Lloclists_table_base073.Ldebug_loc0:74 .byte 4 # DW_LLE_offset_pair75 .uleb128 .Lfunc_begin1-.Lfunc_begin0 # starting offset76 .uleb128 .Ltmp1-.Lfunc_begin0 # ending offset77 .byte 1 # Loc expr size78 .byte 85 # super-register DW_OP_reg579 .byte 4 # DW_LLE_offset_pair80 .uleb128 .Ltmp1-.Lfunc_begin0 # starting offset81 .uleb128 .Lfunc_end1-.Lfunc_begin0 # ending offset82 .byte 1 # Loc expr size83 .byte 80 # super-register DW_OP_reg084 .byte 0 # DW_LLE_end_of_list85.Ldebug_list_header_end0:86 .section .debug_abbrev,"",@progbits87 .byte 1 # Abbreviation Code88 .byte 17 # DW_TAG_compile_unit89 .byte 1 # DW_CHILDREN_yes90 .byte 37 # DW_AT_producer91 .byte 37 # DW_FORM_strx192 .byte 19 # DW_AT_language93 .byte 5 # DW_FORM_data294 .byte 3 # DW_AT_name95 .byte 37 # DW_FORM_strx196 .byte 114 # DW_AT_str_offsets_base97 .byte 23 # DW_FORM_sec_offset98 .byte 16 # DW_AT_stmt_list99 .byte 23 # DW_FORM_sec_offset100 .byte 27 # DW_AT_comp_dir101 .byte 37 # DW_FORM_strx1102 .byte 17 # DW_AT_low_pc103 .byte 27 # DW_FORM_addrx104 .byte 18 # DW_AT_high_pc105 .byte 6 # DW_FORM_data4106 .byte 115 # DW_AT_addr_base107 .byte 23 # DW_FORM_sec_offset108 .ascii "\214\001" # DW_AT_loclists_base109 .byte 23 # DW_FORM_sec_offset110 .byte 0 # EOM(1)111 .byte 0 # EOM(2)112 .byte 2 # Abbreviation Code113 .byte 52 # DW_TAG_variable114 .byte 0 # DW_CHILDREN_no115 .byte 3 # DW_AT_name116 .byte 37 # DW_FORM_strx1117 .byte 73 # DW_AT_type118 .byte 19 # DW_FORM_ref4119 .byte 63 # DW_AT_external120 .byte 25 # DW_FORM_flag_present121 .byte 58 # DW_AT_decl_file122 .byte 11 # DW_FORM_data1123 .byte 59 # DW_AT_decl_line124 .byte 11 # DW_FORM_data1125 .byte 2 # DW_AT_location126 .byte 24 # DW_FORM_exprloc127 .byte 0 # EOM(1)128 .byte 0 # EOM(2)129 .byte 3 # Abbreviation Code130 .byte 36 # DW_TAG_base_type131 .byte 0 # DW_CHILDREN_no132 .byte 3 # DW_AT_name133 .byte 37 # DW_FORM_strx1134 .byte 62 # DW_AT_encoding135 .byte 11 # DW_FORM_data1136 .byte 11 # DW_AT_byte_size137 .byte 11 # DW_FORM_data1138 .byte 0 # EOM(1)139 .byte 0 # EOM(2)140 .byte 4 # Abbreviation Code141 .byte 46 # DW_TAG_subprogram142 .byte 1 # DW_CHILDREN_yes143 .byte 17 # DW_AT_low_pc144 .byte 27 # DW_FORM_addrx145 .byte 18 # DW_AT_high_pc146 .byte 6 # DW_FORM_data4147 .byte 64 # DW_AT_frame_base148 .byte 24 # DW_FORM_exprloc149 .byte 122 # DW_AT_call_all_calls150 .byte 25 # DW_FORM_flag_present151 .byte 49 # DW_AT_abstract_origin152 .byte 19 # DW_FORM_ref4153 .byte 0 # EOM(1)154 .byte 0 # EOM(2)155 .byte 5 # Abbreviation Code156 .byte 5 # DW_TAG_formal_parameter157 .byte 0 # DW_CHILDREN_no158 .byte 2 # DW_AT_location159 .byte 24 # DW_FORM_exprloc160 .byte 49 # DW_AT_abstract_origin161 .byte 19 # DW_FORM_ref4162 .byte 0 # EOM(1)163 .byte 0 # EOM(2)164 .byte 6 # Abbreviation Code165 .byte 46 # DW_TAG_subprogram166 .byte 1 # DW_CHILDREN_yes167 .byte 110 # DW_AT_linkage_name168 .byte 37 # DW_FORM_strx1169 .byte 3 # DW_AT_name170 .byte 37 # DW_FORM_strx1171 .byte 58 # DW_AT_decl_file172 .byte 11 # DW_FORM_data1173 .byte 59 # DW_AT_decl_line174 .byte 11 # DW_FORM_data1175 .byte 63 # DW_AT_external176 .byte 25 # DW_FORM_flag_present177 .byte 32 # DW_AT_inline178 .byte 33 # DW_FORM_implicit_const179 .byte 1180 .byte 0 # EOM(1)181 .byte 0 # EOM(2)182 .byte 7 # Abbreviation Code183 .byte 5 # DW_TAG_formal_parameter184 .byte 0 # DW_CHILDREN_no185 .byte 3 # DW_AT_name186 .byte 37 # DW_FORM_strx1187 .byte 58 # DW_AT_decl_file188 .byte 11 # DW_FORM_data1189 .byte 59 # DW_AT_decl_line190 .byte 11 # DW_FORM_data1191 .byte 73 # DW_AT_type192 .byte 19 # DW_FORM_ref4193 .byte 0 # EOM(1)194 .byte 0 # EOM(2)195 .byte 8 # Abbreviation Code196 .byte 15 # DW_TAG_pointer_type197 .byte 0 # DW_CHILDREN_no198 .byte 73 # DW_AT_type199 .byte 19 # DW_FORM_ref4200 .byte 0 # EOM(1)201 .byte 0 # EOM(2)202 .byte 9 # Abbreviation Code203 .byte 46 # DW_TAG_subprogram204 .byte 1 # DW_CHILDREN_yes205 .byte 17 # DW_AT_low_pc206 .byte 27 # DW_FORM_addrx207 .byte 18 # DW_AT_high_pc208 .byte 6 # DW_FORM_data4209 .byte 64 # DW_AT_frame_base210 .byte 24 # DW_FORM_exprloc211 .byte 122 # DW_AT_call_all_calls212 .byte 25 # DW_FORM_flag_present213 .byte 110 # DW_AT_linkage_name214 .byte 37 # DW_FORM_strx1215 .byte 3 # DW_AT_name216 .byte 37 # DW_FORM_strx1217 .byte 58 # DW_AT_decl_file218 .byte 11 # DW_FORM_data1219 .byte 59 # DW_AT_decl_line220 .byte 11 # DW_FORM_data1221 .byte 73 # DW_AT_type222 .byte 19 # DW_FORM_ref4223 .byte 63 # DW_AT_external224 .byte 25 # DW_FORM_flag_present225 .byte 0 # EOM(1)226 .byte 0 # EOM(2)227 .byte 10 # Abbreviation Code228 .byte 5 # DW_TAG_formal_parameter229 .byte 0 # DW_CHILDREN_no230 .byte 2 # DW_AT_location231 .byte 24 # DW_FORM_exprloc232 .byte 3 # DW_AT_name233 .byte 37 # DW_FORM_strx1234 .byte 58 # DW_AT_decl_file235 .byte 11 # DW_FORM_data1236 .byte 59 # DW_AT_decl_line237 .byte 11 # DW_FORM_data1238 .byte 73 # DW_AT_type239 .byte 19 # DW_FORM_ref4240 .byte 0 # EOM(1)241 .byte 0 # EOM(2)242 .byte 11 # Abbreviation Code243 .byte 52 # DW_TAG_variable244 .byte 0 # DW_CHILDREN_no245 .byte 2 # DW_AT_location246 .byte 34 # DW_FORM_loclistx247 .byte 3 # DW_AT_name248 .byte 37 # DW_FORM_strx1249 .byte 58 # DW_AT_decl_file250 .byte 11 # DW_FORM_data1251 .byte 59 # DW_AT_decl_line252 .byte 11 # DW_FORM_data1253 .byte 73 # DW_AT_type254 .byte 19 # DW_FORM_ref4255 .byte 0 # EOM(1)256 .byte 0 # EOM(2)257 .byte 12 # Abbreviation Code258 .byte 29 # DW_TAG_inlined_subroutine259 .byte 0 # DW_CHILDREN_no260 .byte 49 # DW_AT_abstract_origin261 .byte 19 # DW_FORM_ref4262 .byte 17 # DW_AT_low_pc263 .byte 27 # DW_FORM_addrx264 .byte 18 # DW_AT_high_pc265 .byte 6 # DW_FORM_data4266 .byte 88 # DW_AT_call_file267 .byte 11 # DW_FORM_data1268 .byte 89 # DW_AT_call_line269 .byte 11 # DW_FORM_data1270 .byte 87 # DW_AT_call_column271 .byte 11 # DW_FORM_data1272 .byte 0 # EOM(1)273 .byte 0 # EOM(2)274 .byte 0 # EOM(3)275 .section .debug_info,"",@progbits276.Lcu_begin0:277 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit278.Ldebug_info_start0:279 .short 5 # DWARF version number280 .byte 1 # DWARF Unit Type281 .byte 8 # Address Size (in bytes)282 .long .debug_abbrev # Offset Into Abbrev. Section283 .byte 1 # Abbrev [1] 0xc:0x83 DW_TAG_compile_unit284 .byte 0 # DW_AT_producer285 .short 33 # DW_AT_language286 .byte 1 # DW_AT_name287 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base288 .long .Lline_table_start0 # DW_AT_stmt_list289 .byte 2 # DW_AT_comp_dir290 .byte 1 # DW_AT_low_pc291 .long .Lfunc_end1-.Lfunc_begin0 # DW_AT_high_pc292 .long .Laddr_table_base0 # DW_AT_addr_base293 .long .Lloclists_table_base0 # DW_AT_loclists_base294 .byte 2 # Abbrev [2] 0x27:0xb DW_TAG_variable295 .byte 3 # DW_AT_name296 .long 50 # DW_AT_type297 # DW_AT_external298 .byte 0 # DW_AT_decl_file299 .byte 1 # DW_AT_decl_line300 .byte 2 # DW_AT_location301 .byte 161302 .byte 0303 .byte 3 # Abbrev [3] 0x32:0x4 DW_TAG_base_type304 .byte 4 # DW_AT_name305 .byte 5 # DW_AT_encoding306 .byte 4 # DW_AT_byte_size307 .byte 4 # Abbrev [4] 0x36:0x14 DW_TAG_subprogram308 .byte 1 # DW_AT_low_pc309 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc310 .byte 1 # DW_AT_frame_base311 .byte 87312 # DW_AT_call_all_calls313 .long 74 # DW_AT_abstract_origin314 .byte 5 # Abbrev [5] 0x42:0x7 DW_TAG_formal_parameter315 .byte 1 # DW_AT_location316 .byte 85317 .long 79 # DW_AT_abstract_origin318 .byte 0 # End Of Children Mark319 .byte 6 # Abbrev [6] 0x4a:0xe DW_TAG_subprogram320 .byte 5 # DW_AT_linkage_name321 .byte 6 # DW_AT_name322 .byte 0 # DW_AT_decl_file323 .byte 2 # DW_AT_decl_line324 # DW_AT_external325 # DW_AT_inline326 .byte 7 # Abbrev [7] 0x4f:0x8 DW_TAG_formal_parameter327 .byte 7 # DW_AT_name328 .byte 0 # DW_AT_decl_file329 .byte 2 # DW_AT_decl_line330 .long 88 # DW_AT_type331 .byte 0 # End Of Children Mark332 .byte 8 # Abbrev [8] 0x58:0x5 DW_TAG_pointer_type333 .long 50 # DW_AT_type334 .byte 9 # Abbrev [9] 0x5d:0x31 DW_TAG_subprogram335 .byte 2 # DW_AT_low_pc336 .long .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc337 .byte 1 # DW_AT_frame_base338 .byte 87339 # DW_AT_call_all_calls340 .byte 8 # DW_AT_linkage_name341 .byte 9 # DW_AT_name342 .byte 0 # DW_AT_decl_file343 .byte 6 # DW_AT_decl_line344 .long 50 # DW_AT_type345 # DW_AT_external346 .byte 10 # Abbrev [10] 0x6d:0xa DW_TAG_formal_parameter347 .byte 1 # DW_AT_location348 .byte 85349 .byte 10 # DW_AT_name350 .byte 0 # DW_AT_decl_file351 .byte 6 # DW_AT_decl_line352 .long 50 # DW_AT_type353 .byte 11 # Abbrev [11] 0x77:0x9 DW_TAG_variable354 .byte 0 # DW_AT_location355 .byte 7 # DW_AT_name356 .byte 0 # DW_AT_decl_file357 .byte 7 # DW_AT_decl_line358 .long 50 # DW_AT_type359 .byte 12 # Abbrev [12] 0x80:0xd DW_TAG_inlined_subroutine360 .long 74 # DW_AT_abstract_origin361 .byte 2 # DW_AT_low_pc362 .long .Ltmp1-.Lfunc_begin1 # DW_AT_high_pc363 .byte 0 # DW_AT_call_file364 .byte 8 # DW_AT_call_line365 .byte 4 # DW_AT_call_column366 .byte 0 # End Of Children Mark367 .byte 0 # End Of Children Mark368.Ldebug_info_end0:369 .section .debug_str_offsets,"",@progbits370 .long 48 # Length of String Offsets Set371 .short 5372 .short 0373.Lstr_offsets_base0:374 .section .debug_str,"MS",@progbits,1375.Linfo_string0:376 .asciz "clang version 15.0.0)" # string offset=0377.Linfo_string1:378 .asciz "foo.cpp" # string offset=134379.Linfo_string2:380 .asciz "/testLocListMultiple" # string offset=142381.Linfo_string3:382 .asciz "fooVar" # string offset=199383.Linfo_string4:384 .asciz "int" # string offset=206385.Linfo_string5:386 .asciz "_Z6useFooPi" # string offset=210387.Linfo_string6:388 .asciz "useFoo" # string offset=222389.Linfo_string7:390 .asciz "x" # string offset=229391.Linfo_string8:392 .asciz "_Z3fooi" # string offset=231393.Linfo_string9:394 .asciz "foo" # string offset=239395.Linfo_string10:396 .asciz "argc" # string offset=243397 .section .debug_str_offsets,"",@progbits398 .long .Linfo_string0399 .long .Linfo_string1400 .long .Linfo_string2401 .long .Linfo_string3402 .long .Linfo_string4403 .long .Linfo_string5404 .long .Linfo_string6405 .long .Linfo_string7406 .long .Linfo_string8407 .long .Linfo_string9408 .long .Linfo_string10409 .section .debug_addr,"",@progbits410 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution411.Ldebug_addr_start0:412 .short 5 # DWARF version number413 .byte 8 # Address size414 .byte 0 # Segment selector size415.Laddr_table_base0:416 .quad fooVar417 .quad .Lfunc_begin0418 .quad .Lfunc_begin1419.Ldebug_addr_end0:420 .ident "clang version 15.0.0"421 .section ".note.GNU-stack","",@progbits422 .addrsig423 .section .debug_line,"",@progbits424.Lline_table_start0:425