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 .text 12 .file "helper.cpp" 13 .file 0 "." "helper.cpp" md5 0xf1508be63cfcbaf913e2dfef3cd5bccc 14 .globl _Z6useFooPi # -- Begin function _Z6useFooPi 15 .p2align 4, 0x90 16 .type _Z6useFooPi,@function 17_Z6useFooPi: # @_Z6useFooPi 18.Lfunc_begin0: 19 .loc 0 2 0 # helper.cpp:2:0 20 .cfi_startproc 21# %bb.0: # %entry 22 #DEBUG_VALUE: useFoo:x <- $rdi 23 .loc 0 3 5 prologue_end # helper.cpp:3:5 24 addl $4, (%rdi) 25 .loc 0 4 2 # helper.cpp:4:2 26 retq 27.Ltmp0: 28.Lfunc_end0: 29 .size _Z6useFooPi, .Lfunc_end0-_Z6useFooPi 30 .cfi_endproc 31 # -- End function 32 .globl _Z3fooi # -- Begin function _Z3fooi 33 .p2align 4, 0x90 34 .type _Z3fooi,@function 35_Z3fooi: # @_Z3fooi 36.Lfunc_begin1: 37 .loc 0 6 0 # helper.cpp:6:0 38 .cfi_startproc 39# %bb.0: # %entry 40 #DEBUG_VALUE: foo:argc <- $edi 41 #DEBUG_VALUE: foo:x <- $edi 42 # kill: def $edi killed $edi def $rdi 43 #DEBUG_VALUE: useFoo:x <- undef 44 .loc 0 3 5 prologue_end # helper.cpp:3:5 45 leal 4(%rdi), %eax 46.Ltmp1: 47 #DEBUG_VALUE: foo:x <- $eax 48 .loc 0 9 5 # helper.cpp:9:5 49 retq 50.Ltmp2: 51.Lfunc_end1: 52 .size _Z3fooi, .Lfunc_end1-_Z3fooi 53 .cfi_endproc 54 # -- End function 55 .type fooVar,@object # @fooVar 56 .bss 57 .globl fooVar 58 .p2align 2 59fooVar: 60 .long 0 # 0x0 61 .size fooVar, 4 62 63 .section .debug_loclists,"",@progbits 64 .long .Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length 65.Ldebug_list_header_start0: 66 .short 5 # Version 67 .byte 8 # Address size 68 .byte 0 # Segment selector size 69 .long 1 # Offset entry count 70.Lloclists_table_base0: 71 .long .Ldebug_loc0-.Lloclists_table_base0 72.Ldebug_loc0: 73 .byte 4 # DW_LLE_offset_pair 74 .uleb128 .Lfunc_begin1-.Lfunc_begin0 # starting offset 75 .uleb128 .Ltmp1-.Lfunc_begin0 # ending offset 76 .byte 1 # Loc expr size 77 .byte 85 # super-register DW_OP_reg5 78 .byte 4 # DW_LLE_offset_pair 79 .uleb128 .Ltmp1-.Lfunc_begin0 # starting offset 80 .uleb128 .Lfunc_end1-.Lfunc_begin0 # ending offset 81 .byte 1 # Loc expr size 82 .byte 80 # super-register DW_OP_reg0 83 .byte 0 # DW_LLE_end_of_list 84.Ldebug_list_header_end0: 85 .section .debug_abbrev,"",@progbits 86 .byte 1 # Abbreviation Code 87 .byte 17 # DW_TAG_compile_unit 88 .byte 1 # DW_CHILDREN_yes 89 .byte 37 # DW_AT_producer 90 .byte 37 # DW_FORM_strx1 91 .byte 19 # DW_AT_language 92 .byte 5 # DW_FORM_data2 93 .byte 3 # DW_AT_name 94 .byte 37 # DW_FORM_strx1 95 .byte 114 # DW_AT_str_offsets_base 96 .byte 23 # DW_FORM_sec_offset 97 .byte 16 # DW_AT_stmt_list 98 .byte 23 # DW_FORM_sec_offset 99 .byte 27 # DW_AT_comp_dir 100 .byte 37 # DW_FORM_strx1 101 .byte 17 # DW_AT_low_pc 102 .byte 27 # DW_FORM_addrx 103 .byte 18 # DW_AT_high_pc 104 .byte 6 # DW_FORM_data4 105 .byte 115 # DW_AT_addr_base 106 .byte 23 # DW_FORM_sec_offset 107 .byte 0 # EOM(1) 108 .byte 0 # EOM(2) 109 .byte 2 # Abbreviation Code 110 .byte 52 # DW_TAG_variable 111 .byte 0 # DW_CHILDREN_no 112 .byte 3 # DW_AT_name 113 .byte 37 # DW_FORM_strx1 114 .byte 73 # DW_AT_type 115 .byte 19 # DW_FORM_ref4 116 .byte 63 # DW_AT_external 117 .byte 25 # DW_FORM_flag_present 118 .byte 58 # DW_AT_decl_file 119 .byte 11 # DW_FORM_data1 120 .byte 59 # DW_AT_decl_line 121 .byte 11 # DW_FORM_data1 122 .byte 2 # DW_AT_location 123 .byte 24 # DW_FORM_exprloc 124 .byte 0 # EOM(1) 125 .byte 0 # EOM(2) 126 .byte 3 # Abbreviation Code 127 .byte 36 # DW_TAG_base_type 128 .byte 0 # DW_CHILDREN_no 129 .byte 3 # DW_AT_name 130 .byte 37 # DW_FORM_strx1 131 .byte 62 # DW_AT_encoding 132 .byte 11 # DW_FORM_data1 133 .byte 11 # DW_AT_byte_size 134 .byte 11 # DW_FORM_data1 135 .byte 0 # EOM(1) 136 .byte 0 # EOM(2) 137 .byte 4 # Abbreviation Code 138 .byte 46 # DW_TAG_subprogram 139 .byte 1 # DW_CHILDREN_yes 140 .byte 17 # DW_AT_low_pc 141 .byte 27 # DW_FORM_addrx 142 .byte 18 # DW_AT_high_pc 143 .byte 6 # DW_FORM_data4 144 .byte 64 # DW_AT_frame_base 145 .byte 24 # DW_FORM_exprloc 146 .byte 122 # DW_AT_call_all_calls 147 .byte 25 # DW_FORM_flag_present 148 .byte 49 # DW_AT_abstract_origin 149 .byte 19 # DW_FORM_ref4 150 .byte 0 # EOM(1) 151 .byte 0 # EOM(2) 152 .byte 5 # Abbreviation Code 153 .byte 5 # DW_TAG_formal_parameter 154 .byte 0 # DW_CHILDREN_no 155 .byte 2 # DW_AT_location 156 .byte 24 # DW_FORM_exprloc 157 .byte 49 # DW_AT_abstract_origin 158 .byte 19 # DW_FORM_ref4 159 .byte 0 # EOM(1) 160 .byte 0 # EOM(2) 161 .byte 6 # Abbreviation Code 162 .byte 46 # DW_TAG_subprogram 163 .byte 1 # DW_CHILDREN_yes 164 .byte 110 # DW_AT_linkage_name 165 .byte 37 # DW_FORM_strx1 166 .byte 3 # DW_AT_name 167 .byte 37 # DW_FORM_strx1 168 .byte 58 # DW_AT_decl_file 169 .byte 11 # DW_FORM_data1 170 .byte 59 # DW_AT_decl_line 171 .byte 11 # DW_FORM_data1 172 .byte 63 # DW_AT_external 173 .byte 25 # DW_FORM_flag_present 174 .byte 32 # DW_AT_inline 175 .byte 33 # DW_FORM_implicit_const 176 .byte 1 177 .byte 0 # EOM(1) 178 .byte 0 # EOM(2) 179 .byte 7 # Abbreviation Code 180 .byte 5 # DW_TAG_formal_parameter 181 .byte 0 # DW_CHILDREN_no 182 .byte 3 # DW_AT_name 183 .byte 37 # DW_FORM_strx1 184 .byte 58 # DW_AT_decl_file 185 .byte 11 # DW_FORM_data1 186 .byte 59 # DW_AT_decl_line 187 .byte 11 # DW_FORM_data1 188 .byte 73 # DW_AT_type 189 .byte 19 # DW_FORM_ref4 190 .byte 0 # EOM(1) 191 .byte 0 # EOM(2) 192 .byte 8 # Abbreviation Code 193 .byte 15 # DW_TAG_pointer_type 194 .byte 0 # DW_CHILDREN_no 195 .byte 73 # DW_AT_type 196 .byte 19 # DW_FORM_ref4 197 .byte 0 # EOM(1) 198 .byte 0 # EOM(2) 199 .byte 9 # Abbreviation Code 200 .byte 46 # DW_TAG_subprogram 201 .byte 1 # DW_CHILDREN_yes 202 .byte 17 # DW_AT_low_pc 203 .byte 27 # DW_FORM_addrx 204 .byte 18 # DW_AT_high_pc 205 .byte 6 # DW_FORM_data4 206 .byte 64 # DW_AT_frame_base 207 .byte 24 # DW_FORM_exprloc 208 .byte 122 # DW_AT_call_all_calls 209 .byte 25 # DW_FORM_flag_present 210 .byte 110 # DW_AT_linkage_name 211 .byte 37 # DW_FORM_strx1 212 .byte 3 # DW_AT_name 213 .byte 37 # DW_FORM_strx1 214 .byte 58 # DW_AT_decl_file 215 .byte 11 # DW_FORM_data1 216 .byte 59 # DW_AT_decl_line 217 .byte 11 # DW_FORM_data1 218 .byte 73 # DW_AT_type 219 .byte 19 # DW_FORM_ref4 220 .byte 63 # DW_AT_external 221 .byte 25 # DW_FORM_flag_present 222 .byte 0 # EOM(1) 223 .byte 0 # EOM(2) 224 .byte 10 # Abbreviation Code 225 .byte 5 # DW_TAG_formal_parameter 226 .byte 0 # DW_CHILDREN_no 227 .byte 2 # DW_AT_location 228 .byte 24 # DW_FORM_exprloc 229 .byte 3 # DW_AT_name 230 .byte 37 # DW_FORM_strx1 231 .byte 58 # DW_AT_decl_file 232 .byte 11 # DW_FORM_data1 233 .byte 59 # DW_AT_decl_line 234 .byte 11 # DW_FORM_data1 235 .byte 73 # DW_AT_type 236 .byte 19 # DW_FORM_ref4 237 .byte 0 # EOM(1) 238 .byte 0 # EOM(2) 239 .byte 11 # Abbreviation Code 240 .byte 52 # DW_TAG_variable 241 .byte 0 # DW_CHILDREN_no 242 .byte 2 # DW_AT_location 243 .byte 23 # DW_FORM_sec_offset 244 .byte 3 # DW_AT_name 245 .byte 37 # DW_FORM_strx1 246 .byte 58 # DW_AT_decl_file 247 .byte 11 # DW_FORM_data1 248 .byte 59 # DW_AT_decl_line 249 .byte 11 # DW_FORM_data1 250 .byte 73 # DW_AT_type 251 .byte 19 # DW_FORM_ref4 252 .byte 0 # EOM(1) 253 .byte 0 # EOM(2) 254 .byte 12 # Abbreviation Code 255 .byte 29 # DW_TAG_inlined_subroutine 256 .byte 0 # DW_CHILDREN_no 257 .byte 49 # DW_AT_abstract_origin 258 .byte 19 # DW_FORM_ref4 259 .byte 17 # DW_AT_low_pc 260 .byte 27 # DW_FORM_addrx 261 .byte 18 # DW_AT_high_pc 262 .byte 6 # DW_FORM_data4 263 .byte 88 # DW_AT_call_file 264 .byte 11 # DW_FORM_data1 265 .byte 89 # DW_AT_call_line 266 .byte 11 # DW_FORM_data1 267 .byte 87 # DW_AT_call_column 268 .byte 11 # DW_FORM_data1 269 .byte 0 # EOM(1) 270 .byte 0 # EOM(2) 271 .byte 0 # EOM(3) 272 .section .debug_info,"",@progbits 273.Lcu_begin0: 274 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit 275.Ldebug_info_start0: 276 .short 5 # DWARF version number 277 .byte 1 # DWARF Unit Type 278 .byte 8 # Address Size (in bytes) 279 .long .debug_abbrev # Offset Into Abbrev. Section 280 .byte 1 # Abbrev [1] 0xc:0x83 DW_TAG_compile_unit 281 .byte 0 # DW_AT_producer 282 .short 33 # DW_AT_language 283 .byte 1 # DW_AT_name 284 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 285 .long .Lline_table_start0 # DW_AT_stmt_list 286 .byte 2 # DW_AT_comp_dir 287 .byte 1 # DW_AT_low_pc 288 .long .Lfunc_end1-.Lfunc_begin0 # DW_AT_high_pc 289 .long .Laddr_table_base0 # DW_AT_addr_base 290 .byte 2 # Abbrev [2] 0x27:0xb DW_TAG_variable 291 .byte 3 # DW_AT_name 292 .long 46 # DW_AT_type 293 # DW_AT_external 294 .byte 0 # DW_AT_decl_file 295 .byte 1 # DW_AT_decl_line 296 .byte 2 # DW_AT_location 297 .byte 161 298 .byte 0 299 .byte 3 # Abbrev [3] 0x32:0x4 DW_TAG_base_type 300 .byte 4 # DW_AT_name 301 .byte 5 # DW_AT_encoding 302 .byte 4 # DW_AT_byte_size 303 .byte 4 # Abbrev [4] 0x36:0x14 DW_TAG_subprogram 304 .byte 1 # DW_AT_low_pc 305 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 306 .byte 1 # DW_AT_frame_base 307 .byte 87 308 # DW_AT_call_all_calls 309 .long 70 # DW_AT_abstract_origin 310 .byte 5 # Abbrev [5] 0x42:0x7 DW_TAG_formal_parameter 311 .byte 1 # DW_AT_location 312 .byte 85 313 .long 75 # DW_AT_abstract_origin 314 .byte 0 # End Of Children Mark 315 .byte 6 # Abbrev [6] 0x4a:0xe DW_TAG_subprogram 316 .byte 5 # DW_AT_linkage_name 317 .byte 6 # DW_AT_name 318 .byte 0 # DW_AT_decl_file 319 .byte 2 # DW_AT_decl_line 320 # DW_AT_external 321 # DW_AT_inline 322 .byte 7 # Abbrev [7] 0x4f:0x8 DW_TAG_formal_parameter 323 .byte 7 # DW_AT_name 324 .byte 0 # DW_AT_decl_file 325 .byte 2 # DW_AT_decl_line 326 .long 84 # DW_AT_type 327 .byte 0 # End Of Children Mark 328 .byte 8 # Abbrev [8] 0x58:0x5 DW_TAG_pointer_type 329 .long 46 # DW_AT_type 330 .byte 9 # Abbrev [9] 0x5d:0x31 DW_TAG_subprogram 331 .byte 2 # DW_AT_low_pc 332 .long .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc 333 .byte 1 # DW_AT_frame_base 334 .byte 87 335 # DW_AT_call_all_calls 336 .byte 8 # DW_AT_linkage_name 337 .byte 9 # DW_AT_name 338 .byte 0 # DW_AT_decl_file 339 .byte 6 # DW_AT_decl_line 340 .long 46 # DW_AT_type 341 # DW_AT_external 342 .byte 10 # Abbrev [10] 0x6d:0xa DW_TAG_formal_parameter 343 .byte 1 # DW_AT_location 344 .byte 85 345 .byte 10 # DW_AT_name 346 .byte 0 # DW_AT_decl_file 347 .byte 6 # DW_AT_decl_line 348 .long 46 # DW_AT_type 349 .byte 11 # Abbrev [11] 0x77:0x9 DW_TAG_variable 350 .long .Ldebug_loc0 # DW_AT_location 351 .byte 7 # DW_AT_name 352 .byte 0 # DW_AT_decl_file 353 .byte 7 # DW_AT_decl_line 354 .long 46 # DW_AT_type 355 .byte 12 # Abbrev [12] 0x80:0xd DW_TAG_inlined_subroutine 356 .long 70 # DW_AT_abstract_origin 357 .byte 2 # DW_AT_low_pc 358 .long .Ltmp1-.Lfunc_begin1 # DW_AT_high_pc 359 .byte 0 # DW_AT_call_file 360 .byte 8 # DW_AT_call_line 361 .byte 5 # DW_AT_call_column 362 .byte 0 # End Of Children Mark 363 .byte 0 # End Of Children Mark 364.Ldebug_info_end0: 365 .section .debug_str_offsets,"",@progbits 366 .long 48 # Length of String Offsets Set 367 .short 5 368 .short 0 369.Lstr_offsets_base0: 370 .section .debug_str,"MS",@progbits,1 371.Linfo_string0: 372 .asciz "clang version 15.0.0" # string offset=0 373.Linfo_string1: 374 .asciz "helper.cpp" # string offset=134 375.Linfo_string2: 376 .asciz "." # string offset=145 377.Linfo_string3: 378 .asciz "fooVar" # string offset=183 379.Linfo_string4: 380 .asciz "int" # string offset=190 381.Linfo_string5: 382 .asciz "_Z6useFooPi" # string offset=194 383.Linfo_string6: 384 .asciz "useFoo" # string offset=206 385.Linfo_string7: 386 .asciz "x" # string offset=213 387.Linfo_string8: 388 .asciz "_Z3fooi" # string offset=215 389.Linfo_string9: 390 .asciz "foo" # string offset=223 391.Linfo_string10: 392 .asciz "argc" # string offset=227 393 .section .debug_str_offsets,"",@progbits 394 .long .Linfo_string0 395 .long .Linfo_string1 396 .long .Linfo_string2 397 .long .Linfo_string3 398 .long .Linfo_string4 399 .long .Linfo_string5 400 .long .Linfo_string6 401 .long .Linfo_string7 402 .long .Linfo_string8 403 .long .Linfo_string9 404 .long .Linfo_string10 405 .section .debug_addr,"",@progbits 406 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution 407.Ldebug_addr_start0: 408 .short 5 # DWARF version number 409 .byte 8 # Address size 410 .byte 0 # Segment selector size 411.Laddr_table_base0: 412 .quad fooVar 413 .quad .Lfunc_begin0 414 .quad .Lfunc_begin1 415.Ldebug_addr_end0: 416 .ident "clang version 15.0.0" 417 .section ".note.GNU-stack","",@progbits 418 .addrsig 419 .section .debug_line,"",@progbits 420.Lline_table_start0: 421