1# clang++ -O2 -g -gdwarf-4 -gsplit-dwarf main.cpp 2# void use(int * x, int * y) { 3# static int Foo = *y + *x; 4# *x += 4; 5# *y -= Foo; 6# } 7# 8# int x = 0; 9# int y = 1; 10# int main(int argc, char *argv[]) { 11# x = argc; 12# y = argc + 3; 13# use(&x, &y); 14# return 0; 15# } 16 17 .text 18 .file "main.cpp" 19 .file 1 "." "main.cpp" 20 .globl _Z3usePiS_ # -- Begin function _Z3usePiS_ 21 .p2align 4, 0x90 22 .type _Z3usePiS_,@function 23_Z3usePiS_: # @_Z3usePiS_ 24.Lfunc_begin0: 25 .loc 1 1 0 # main.cpp:1:0 26 .cfi_startproc 27# %bb.0: # %entry 28 #DEBUG_VALUE: use:x <- $rdi 29 #DEBUG_VALUE: use:y <- $rsi 30 pushq %r14 31 .cfi_def_cfa_offset 16 32 pushq %rbx 33 .cfi_def_cfa_offset 24 34 pushq %rax 35 .cfi_def_cfa_offset 32 36 .cfi_offset %rbx, -24 37 .cfi_offset %r14, -16 38 movq %rsi, %rbx 39 movq %rdi, %r14 40.Ltmp0: 41 .loc 1 2 2 prologue_end # main.cpp:2:2 42 movzbl _ZGVZ3usePiS_E3Foo(%rip), %eax 43 testb %al, %al 44 je .LBB0_1 45.Ltmp1: 46.LBB0_3: # %init.end 47 #DEBUG_VALUE: use:x <- $r14 48 #DEBUG_VALUE: use:y <- $rbx 49 .loc 1 3 5 # main.cpp:3:5 50 addl $4, (%r14) 51 .loc 1 4 8 # main.cpp:4:8 52 movl _ZZ3usePiS_E3Foo(%rip), %eax 53 .loc 1 4 5 is_stmt 0 # main.cpp:4:5 54 subl %eax, (%rbx) 55 .loc 1 5 1 epilogue_begin is_stmt 1 # main.cpp:5:1 56 addq $8, %rsp 57 .cfi_def_cfa_offset 24 58 popq %rbx 59.Ltmp2: 60 #DEBUG_VALUE: use:y <- [DW_OP_LLVM_entry_value 1] $rsi 61 .cfi_def_cfa_offset 16 62 popq %r14 63.Ltmp3: 64 #DEBUG_VALUE: use:x <- [DW_OP_LLVM_entry_value 1] $rdi 65 .cfi_def_cfa_offset 8 66 retq 67.Ltmp4: 68.LBB0_1: # %init.check 69 .cfi_def_cfa_offset 32 70 #DEBUG_VALUE: use:x <- $r14 71 #DEBUG_VALUE: use:y <- $rbx 72 .loc 1 2 2 # main.cpp:2:2 73 leaq _ZGVZ3usePiS_E3Foo(%rip), %rdi 74 callq __cxa_guard_acquire@PLT 75.Ltmp5: 76 testl %eax, %eax 77 je .LBB0_3 78.Ltmp6: 79# %bb.2: # %init 80 #DEBUG_VALUE: use:x <- $r14 81 #DEBUG_VALUE: use:y <- $rbx 82 .loc 1 2 24 is_stmt 0 # main.cpp:2:24 83 movl (%r14), %eax 84 .loc 1 2 22 # main.cpp:2:22 85 addl (%rbx), %eax 86 .loc 1 2 2 # main.cpp:2:2 87 movl %eax, _ZZ3usePiS_E3Foo(%rip) 88 leaq _ZGVZ3usePiS_E3Foo(%rip), %rdi 89 callq __cxa_guard_release@PLT 90.Ltmp7: 91 .loc 1 0 2 # main.cpp:0:2 92 jmp .LBB0_3 93.Ltmp8: 94.Lfunc_end0: 95 .size _Z3usePiS_, .Lfunc_end0-_Z3usePiS_ 96 .cfi_endproc 97 # -- End function 98 .globl main # -- Begin function main 99 .p2align 4, 0x90 100 .type main,@function 101main: # @main 102.Lfunc_begin1: 103 .cfi_startproc 104# %bb.0: # %entry 105 #DEBUG_VALUE: main:argc <- $edi 106 #DEBUG_VALUE: main:argv <- $rsi 107 .loc 1 10 6 prologue_end is_stmt 1 # main.cpp:10:6 108 movl %edi, x(%rip) 109 .loc 1 11 13 # main.cpp:11:13 110 addl $3, %edi 111.Ltmp9: 112 #DEBUG_VALUE: main:argc <- [DW_OP_LLVM_entry_value 1] $edi 113 .loc 1 11 6 is_stmt 0 # main.cpp:11:6 114 movl %edi, y(%rip) 115.Ltmp10: 116 #DEBUG_VALUE: use:y <- undef 117 #DEBUG_VALUE: use:x <- undef 118 .loc 1 2 2 is_stmt 1 # main.cpp:2:2 119 movzbl _ZGVZ3usePiS_E3Foo(%rip), %eax 120 testb %al, %al 121 je .LBB1_1 122.Ltmp11: 123.LBB1_4: # %_Z3usePiS_.exit 124 #DEBUG_VALUE: main:argc <- [DW_OP_LLVM_entry_value 1] $edi 125 #DEBUG_VALUE: main:argv <- [DW_OP_LLVM_entry_value 1] $rsi 126 .loc 1 3 5 # main.cpp:3:5 127 addl $4, x(%rip) 128 .loc 1 4 8 # main.cpp:4:8 129 movl _ZZ3usePiS_E3Foo(%rip), %eax 130 .loc 1 4 5 is_stmt 0 # main.cpp:4:5 131 subl %eax, y(%rip) 132.Ltmp12: 133 .loc 1 13 4 is_stmt 1 # main.cpp:13:4 134 xorl %eax, %eax 135 retq 136.Ltmp13: 137.LBB1_1: # %init.check.i 138 #DEBUG_VALUE: main:argc <- [DW_OP_LLVM_entry_value 1] $edi 139 #DEBUG_VALUE: main:argv <- $rsi 140 pushq %rax 141 .cfi_def_cfa_offset 16 142.Ltmp14: 143 .loc 1 2 2 # main.cpp:2:2 144 leaq _ZGVZ3usePiS_E3Foo(%rip), %rdi 145 callq __cxa_guard_acquire@PLT 146.Ltmp15: 147 #DEBUG_VALUE: main:argv <- [DW_OP_LLVM_entry_value 1] $rsi 148 testl %eax, %eax 149 je .LBB1_3 150.Ltmp16: 151# %bb.2: # %init.i 152 #DEBUG_VALUE: main:argc <- [DW_OP_LLVM_entry_value 1] $edi 153 #DEBUG_VALUE: main:argv <- [DW_OP_LLVM_entry_value 1] $rsi 154 .loc 1 2 24 is_stmt 0 # main.cpp:2:24 155 movl x(%rip), %eax 156 .loc 1 2 22 # main.cpp:2:22 157 addl y(%rip), %eax 158 .loc 1 2 2 # main.cpp:2:2 159 movl %eax, _ZZ3usePiS_E3Foo(%rip) 160 leaq _ZGVZ3usePiS_E3Foo(%rip), %rdi 161 callq __cxa_guard_release@PLT 162.Ltmp17: 163.LBB1_3: 164 #DEBUG_VALUE: main:argc <- [DW_OP_LLVM_entry_value 1] $edi 165 #DEBUG_VALUE: main:argv <- [DW_OP_LLVM_entry_value 1] $rsi 166 .loc 1 0 2 # main.cpp:0:2 167 addq $8, %rsp 168 .cfi_def_cfa_offset 8 169 jmp .LBB1_4 170.Lfunc_end1: 171 .size main, .Lfunc_end1-main 172 .cfi_endproc 173 # -- End function 174 .type _ZZ3usePiS_E3Foo,@object # @_ZZ3usePiS_E3Foo 175 .local _ZZ3usePiS_E3Foo 176 .comm _ZZ3usePiS_E3Foo,4,4 177 .type _ZGVZ3usePiS_E3Foo,@object # @_ZGVZ3usePiS_E3Foo 178 .local _ZGVZ3usePiS_E3Foo 179 .comm _ZGVZ3usePiS_E3Foo,8,8 180 .type x,@object # @x 181 .bss 182 .globl x 183 .p2align 2, 0x0 184x: 185 .long 0 # 0x0 186 .size x, 4 187 188 .type y,@object # @y 189 .data 190 .globl y 191 .p2align 2, 0x0 192y: 193 .long 1 # 0x1 194 .size y, 4 195 196 .section .debug_loc.dwo,"e",@progbits 197.Ldebug_loc0: 198 .byte 3 199 .byte 3 200 .long .Ltmp1-.Lfunc_begin0 201 .short 1 # Loc expr size 202 .byte 85 # DW_OP_reg5 203 .byte 3 204 .byte 5 205 .long .Ltmp3-.Ltmp1 206 .short 1 # Loc expr size 207 .byte 94 # DW_OP_reg14 208 .byte 3 209 .byte 6 210 .long .Ltmp4-.Ltmp3 211 .short 4 # Loc expr size 212 .byte 243 # DW_OP_GNU_entry_value 213 .byte 1 # 1 214 .byte 85 # DW_OP_reg5 215 .byte 159 # DW_OP_stack_value 216 .byte 3 217 .byte 7 218 .long .Lfunc_end0-.Ltmp4 219 .short 1 # Loc expr size 220 .byte 94 # DW_OP_reg14 221 .byte 0 222.Ldebug_loc1: 223 .byte 3 224 .byte 3 225 .long .Ltmp1-.Lfunc_begin0 226 .short 1 # Loc expr size 227 .byte 84 # DW_OP_reg4 228 .byte 3 229 .byte 5 230 .long .Ltmp2-.Ltmp1 231 .short 1 # Loc expr size 232 .byte 83 # DW_OP_reg3 233 .byte 3 234 .byte 8 235 .long .Ltmp4-.Ltmp2 236 .short 4 # Loc expr size 237 .byte 243 # DW_OP_GNU_entry_value 238 .byte 1 # 1 239 .byte 84 # DW_OP_reg4 240 .byte 159 # DW_OP_stack_value 241 .byte 3 242 .byte 7 243 .long .Lfunc_end0-.Ltmp4 244 .short 1 # Loc expr size 245 .byte 83 # DW_OP_reg3 246 .byte 0 247.Ldebug_loc2: 248 .byte 3 249 .byte 4 250 .long .Ltmp9-.Lfunc_begin1 251 .short 1 # Loc expr size 252 .byte 85 # super-register DW_OP_reg5 253 .byte 3 254 .byte 9 255 .long .Lfunc_end1-.Ltmp9 256 .short 4 # Loc expr size 257 .byte 243 # DW_OP_GNU_entry_value 258 .byte 1 # 1 259 .byte 85 # super-register DW_OP_reg5 260 .byte 159 # DW_OP_stack_value 261 .byte 0 262.Ldebug_loc3: 263 .byte 3 264 .byte 4 265 .long .Ltmp11-.Lfunc_begin1 266 .short 1 # Loc expr size 267 .byte 84 # DW_OP_reg4 268 .byte 3 269 .byte 10 270 .long .Ltmp13-.Ltmp11 271 .short 4 # Loc expr size 272 .byte 243 # DW_OP_GNU_entry_value 273 .byte 1 # 1 274 .byte 84 # DW_OP_reg4 275 .byte 159 # DW_OP_stack_value 276 .byte 3 277 .byte 11 278 .long .Ltmp15-.Ltmp13 279 .short 1 # Loc expr size 280 .byte 84 # DW_OP_reg4 281 .byte 3 282 .byte 12 283 .long .Lfunc_end1-.Ltmp15 284 .short 4 # Loc expr size 285 .byte 243 # DW_OP_GNU_entry_value 286 .byte 1 # 1 287 .byte 84 # DW_OP_reg4 288 .byte 159 # DW_OP_stack_value 289 .byte 0 290 .section .debug_abbrev,"",@progbits 291 .byte 1 # Abbreviation Code 292 .byte 17 # DW_TAG_compile_unit 293 .byte 0 # DW_CHILDREN_no 294 .byte 16 # DW_AT_stmt_list 295 .byte 23 # DW_FORM_sec_offset 296 .byte 27 # DW_AT_comp_dir 297 .byte 14 # DW_FORM_strp 298 .ascii "\264B" # DW_AT_GNU_pubnames 299 .byte 25 # DW_FORM_flag_present 300 .ascii "\260B" # DW_AT_GNU_dwo_name 301 .byte 14 # DW_FORM_strp 302 .ascii "\261B" # DW_AT_GNU_dwo_id 303 .byte 7 # DW_FORM_data8 304 .ascii "\262B" # DW_AT_GNU_ranges_base 305 .byte 23 # DW_FORM_sec_offset 306 .byte 17 # DW_AT_low_pc 307 .byte 1 # DW_FORM_addr 308 .byte 18 # DW_AT_high_pc 309 .byte 6 # DW_FORM_data4 310 .ascii "\263B" # DW_AT_GNU_addr_base 311 .byte 23 # DW_FORM_sec_offset 312 .byte 0 # EOM(1) 313 .byte 0 # EOM(2) 314 .byte 0 # EOM(3) 315 .section .debug_info,"",@progbits 316.Lcu_begin0: 317 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit 318.Ldebug_info_start0: 319 .short 4 # DWARF version number 320 .long .debug_abbrev # Offset Into Abbrev. Section 321 .byte 8 # Address Size (in bytes) 322 .byte 1 # Abbrev [1] 0xb:0x29 DW_TAG_compile_unit 323 .long .Lline_table_start0 # DW_AT_stmt_list 324 .long .Lskel_string0 # DW_AT_comp_dir 325 # DW_AT_GNU_pubnames 326 .long .Lskel_string1 # DW_AT_GNU_dwo_name 327 .quad -3506999759942021708 # DW_AT_GNU_dwo_id 328 .long .debug_ranges # DW_AT_GNU_ranges_base 329 .quad .Lfunc_begin0 # DW_AT_low_pc 330 .long .Lfunc_end1-.Lfunc_begin0 # DW_AT_high_pc 331 .long .Laddr_table_base0 # DW_AT_GNU_addr_base 332.Ldebug_info_end0: 333 .section .debug_ranges,"",@progbits 334.Ldebug_ranges0: 335 .quad .Ltmp10-.Lfunc_begin0 336 .quad .Ltmp12-.Lfunc_begin0 337 .quad .Ltmp14-.Lfunc_begin0 338 .quad .Ltmp17-.Lfunc_begin0 339 .quad 0 340 .quad 0 341 .section .debug_str,"MS",@progbits,1 342.Lskel_string0: 343 .asciz "." # string offset=0 344.Lskel_string1: 345 .asciz "main.dwo" # string offset=38 346 .section .debug_str.dwo,"eMS",@progbits,1 347.Linfo_string0: 348 .asciz "Foo" # string offset=0 349.Linfo_string1: 350 .asciz "int" # string offset=4 351.Linfo_string2: 352 .asciz "x" # string offset=8 353.Linfo_string3: 354 .asciz "y" # string offset=10 355.Linfo_string4: 356 .asciz "_Z3usePiS_" # string offset=12 357.Linfo_string5: 358 .asciz "use" # string offset=23 359.Linfo_string6: 360 .asciz "main" # string offset=27 361.Linfo_string7: 362 .asciz "argc" # string offset=32 363.Linfo_string8: 364 .asciz "argv" # string offset=37 365.Linfo_string9: 366 .asciz "char" # string offset=42 367.Linfo_string10: 368 .asciz "clang version 18.0.0 (git@github.com:llvm/llvm-project.git 3a8db0f4bfb57348f49d9603119fa157114bbf8e)" # string offset=47 369.Linfo_string11: 370 .asciz "main.cpp" # string offset=148 371.Linfo_string12: 372 .asciz "main.dwo" # string offset=157 373 .section .debug_str_offsets.dwo,"e",@progbits 374 .long 0 375 .long 4 376 .long 8 377 .long 10 378 .long 12 379 .long 23 380 .long 27 381 .long 32 382 .long 37 383 .long 42 384 .long 47 385 .long 148 386 .long 157 387 .section .debug_info.dwo,"e",@progbits 388 .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit 389.Ldebug_info_dwo_start0: 390 .short 4 # DWARF version number 391 .long 0 # Offset Into Abbrev. Section 392 .byte 8 # Address Size (in bytes) 393 .byte 1 # Abbrev [1] 0xb:0xb1 DW_TAG_compile_unit 394 .byte 10 # DW_AT_producer 395 .short 33 # DW_AT_language 396 .byte 11 # DW_AT_name 397 .byte 12 # DW_AT_GNU_dwo_name 398 .quad -3506999759942021708 # DW_AT_GNU_dwo_id 399 .byte 2 # Abbrev [2] 0x19:0x2a DW_TAG_subprogram 400 .byte 3 # DW_AT_low_pc 401 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 402 .byte 1 # DW_AT_frame_base 403 .byte 87 404 # DW_AT_GNU_all_call_sites 405 .long 93 # DW_AT_abstract_origin 406 .byte 3 # Abbrev [3] 0x25:0xb DW_TAG_variable 407 .byte 0 # DW_AT_name 408 .long 67 # DW_AT_type 409 .byte 1 # DW_AT_decl_file 410 .byte 2 # DW_AT_decl_line 411 .byte 2 # DW_AT_location 412 .byte 251 413 .byte 0 414 .byte 4 # Abbrev [4] 0x30:0x9 DW_TAG_formal_parameter 415 .long .Ldebug_loc0-.debug_loc.dwo # DW_AT_location 416 .long 99 # DW_AT_abstract_origin 417 .byte 4 # Abbrev [4] 0x39:0x9 DW_TAG_formal_parameter 418 .long .Ldebug_loc1-.debug_loc.dwo # DW_AT_location 419 .long 107 # DW_AT_abstract_origin 420 .byte 0 # End Of Children Mark 421 .byte 5 # Abbrev [5] 0x43:0x4 DW_TAG_base_type 422 .byte 1 # DW_AT_name 423 .byte 5 # DW_AT_encoding 424 .byte 4 # DW_AT_byte_size 425 .byte 6 # Abbrev [6] 0x47:0xb DW_TAG_variable 426 .byte 2 # DW_AT_name 427 .long 67 # DW_AT_type 428 # DW_AT_external 429 .byte 1 # DW_AT_decl_file 430 .byte 7 # DW_AT_decl_line 431 .byte 2 # DW_AT_location 432 .byte 251 433 .byte 1 434 .byte 6 # Abbrev [6] 0x52:0xb DW_TAG_variable 435 .byte 3 # DW_AT_name 436 .long 67 # DW_AT_type 437 # DW_AT_external 438 .byte 1 # DW_AT_decl_file 439 .byte 8 # DW_AT_decl_line 440 .byte 2 # DW_AT_location 441 .byte 251 442 .byte 2 443 .byte 7 # Abbrev [7] 0x5d:0x17 DW_TAG_subprogram 444 .byte 4 # DW_AT_linkage_name 445 .byte 5 # DW_AT_name 446 .byte 1 # DW_AT_decl_file 447 .byte 1 # DW_AT_decl_line 448 # DW_AT_external 449 .byte 1 # DW_AT_inline 450 .byte 8 # Abbrev [8] 0x63:0x8 DW_TAG_formal_parameter 451 .byte 2 # DW_AT_name 452 .byte 1 # DW_AT_decl_file 453 .byte 1 # DW_AT_decl_line 454 .long 116 # DW_AT_type 455 .byte 8 # Abbrev [8] 0x6b:0x8 DW_TAG_formal_parameter 456 .byte 3 # DW_AT_name 457 .byte 1 # DW_AT_decl_file 458 .byte 1 # DW_AT_decl_line 459 .long 116 # DW_AT_type 460 .byte 0 # End Of Children Mark 461 .byte 9 # Abbrev [9] 0x74:0x5 DW_TAG_pointer_type 462 .long 67 # DW_AT_type 463 .byte 10 # Abbrev [10] 0x79:0x34 DW_TAG_subprogram 464 .byte 4 # DW_AT_low_pc 465 .long .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc 466 .byte 1 # DW_AT_frame_base 467 .byte 87 468 # DW_AT_GNU_all_call_sites 469 .byte 6 # DW_AT_name 470 .byte 1 # DW_AT_decl_file 471 .byte 9 # DW_AT_decl_line 472 .long 67 # DW_AT_type 473 # DW_AT_external 474 .byte 11 # Abbrev [11] 0x88:0xc DW_TAG_formal_parameter 475 .long .Ldebug_loc2-.debug_loc.dwo # DW_AT_location 476 .byte 7 # DW_AT_name 477 .byte 1 # DW_AT_decl_file 478 .byte 9 # DW_AT_decl_line 479 .long 67 # DW_AT_type 480 .byte 11 # Abbrev [11] 0x94:0xc DW_TAG_formal_parameter 481 .long .Ldebug_loc3-.debug_loc.dwo # DW_AT_location 482 .byte 8 # DW_AT_name 483 .byte 1 # DW_AT_decl_file 484 .byte 9 # DW_AT_decl_line 485 .long 173 # DW_AT_type 486 .byte 12 # Abbrev [12] 0xa0:0xc DW_TAG_inlined_subroutine 487 .long 93 # DW_AT_abstract_origin 488 .long .Ldebug_ranges0-.debug_ranges # DW_AT_ranges 489 .byte 1 # DW_AT_call_file 490 .byte 12 # DW_AT_call_line 491 .byte 4 # DW_AT_call_column 492 .byte 0 # End Of Children Mark 493 .byte 9 # Abbrev [9] 0xad:0x5 DW_TAG_pointer_type 494 .long 178 # DW_AT_type 495 .byte 9 # Abbrev [9] 0xb2:0x5 DW_TAG_pointer_type 496 .long 183 # DW_AT_type 497 .byte 5 # Abbrev [5] 0xb7:0x4 DW_TAG_base_type 498 .byte 9 # DW_AT_name 499 .byte 6 # DW_AT_encoding 500 .byte 1 # DW_AT_byte_size 501 .byte 0 # End Of Children Mark 502.Ldebug_info_dwo_end0: 503 .section .debug_abbrev.dwo,"e",@progbits 504 .byte 1 # Abbreviation Code 505 .byte 17 # DW_TAG_compile_unit 506 .byte 1 # DW_CHILDREN_yes 507 .byte 37 # DW_AT_producer 508 .ascii "\202>" # DW_FORM_GNU_str_index 509 .byte 19 # DW_AT_language 510 .byte 5 # DW_FORM_data2 511 .byte 3 # DW_AT_name 512 .ascii "\202>" # DW_FORM_GNU_str_index 513 .ascii "\260B" # DW_AT_GNU_dwo_name 514 .ascii "\202>" # DW_FORM_GNU_str_index 515 .ascii "\261B" # DW_AT_GNU_dwo_id 516 .byte 7 # DW_FORM_data8 517 .byte 0 # EOM(1) 518 .byte 0 # EOM(2) 519 .byte 2 # Abbreviation Code 520 .byte 46 # DW_TAG_subprogram 521 .byte 1 # DW_CHILDREN_yes 522 .byte 17 # DW_AT_low_pc 523 .ascii "\201>" # DW_FORM_GNU_addr_index 524 .byte 18 # DW_AT_high_pc 525 .byte 6 # DW_FORM_data4 526 .byte 64 # DW_AT_frame_base 527 .byte 24 # DW_FORM_exprloc 528 .ascii "\227B" # DW_AT_GNU_all_call_sites 529 .byte 25 # DW_FORM_flag_present 530 .byte 49 # DW_AT_abstract_origin 531 .byte 19 # DW_FORM_ref4 532 .byte 0 # EOM(1) 533 .byte 0 # EOM(2) 534 .byte 3 # Abbreviation Code 535 .byte 52 # DW_TAG_variable 536 .byte 0 # DW_CHILDREN_no 537 .byte 3 # DW_AT_name 538 .ascii "\202>" # DW_FORM_GNU_str_index 539 .byte 73 # DW_AT_type 540 .byte 19 # DW_FORM_ref4 541 .byte 58 # DW_AT_decl_file 542 .byte 11 # DW_FORM_data1 543 .byte 59 # DW_AT_decl_line 544 .byte 11 # DW_FORM_data1 545 .byte 2 # DW_AT_location 546 .byte 24 # DW_FORM_exprloc 547 .byte 0 # EOM(1) 548 .byte 0 # EOM(2) 549 .byte 4 # Abbreviation Code 550 .byte 5 # DW_TAG_formal_parameter 551 .byte 0 # DW_CHILDREN_no 552 .byte 2 # DW_AT_location 553 .byte 23 # DW_FORM_sec_offset 554 .byte 49 # DW_AT_abstract_origin 555 .byte 19 # DW_FORM_ref4 556 .byte 0 # EOM(1) 557 .byte 0 # EOM(2) 558 .byte 5 # Abbreviation Code 559 .byte 36 # DW_TAG_base_type 560 .byte 0 # DW_CHILDREN_no 561 .byte 3 # DW_AT_name 562 .ascii "\202>" # DW_FORM_GNU_str_index 563 .byte 62 # DW_AT_encoding 564 .byte 11 # DW_FORM_data1 565 .byte 11 # DW_AT_byte_size 566 .byte 11 # DW_FORM_data1 567 .byte 0 # EOM(1) 568 .byte 0 # EOM(2) 569 .byte 6 # Abbreviation Code 570 .byte 52 # DW_TAG_variable 571 .byte 0 # DW_CHILDREN_no 572 .byte 3 # DW_AT_name 573 .ascii "\202>" # DW_FORM_GNU_str_index 574 .byte 73 # DW_AT_type 575 .byte 19 # DW_FORM_ref4 576 .byte 63 # DW_AT_external 577 .byte 25 # DW_FORM_flag_present 578 .byte 58 # DW_AT_decl_file 579 .byte 11 # DW_FORM_data1 580 .byte 59 # DW_AT_decl_line 581 .byte 11 # DW_FORM_data1 582 .byte 2 # DW_AT_location 583 .byte 24 # DW_FORM_exprloc 584 .byte 0 # EOM(1) 585 .byte 0 # EOM(2) 586 .byte 7 # Abbreviation Code 587 .byte 46 # DW_TAG_subprogram 588 .byte 1 # DW_CHILDREN_yes 589 .byte 110 # DW_AT_linkage_name 590 .ascii "\202>" # DW_FORM_GNU_str_index 591 .byte 3 # DW_AT_name 592 .ascii "\202>" # DW_FORM_GNU_str_index 593 .byte 58 # DW_AT_decl_file 594 .byte 11 # DW_FORM_data1 595 .byte 59 # DW_AT_decl_line 596 .byte 11 # DW_FORM_data1 597 .byte 63 # DW_AT_external 598 .byte 25 # DW_FORM_flag_present 599 .byte 32 # DW_AT_inline 600 .byte 11 # DW_FORM_data1 601 .byte 0 # EOM(1) 602 .byte 0 # EOM(2) 603 .byte 8 # Abbreviation Code 604 .byte 5 # DW_TAG_formal_parameter 605 .byte 0 # DW_CHILDREN_no 606 .byte 3 # DW_AT_name 607 .ascii "\202>" # DW_FORM_GNU_str_index 608 .byte 58 # DW_AT_decl_file 609 .byte 11 # DW_FORM_data1 610 .byte 59 # DW_AT_decl_line 611 .byte 11 # DW_FORM_data1 612 .byte 73 # DW_AT_type 613 .byte 19 # DW_FORM_ref4 614 .byte 0 # EOM(1) 615 .byte 0 # EOM(2) 616 .byte 9 # Abbreviation Code 617 .byte 15 # DW_TAG_pointer_type 618 .byte 0 # DW_CHILDREN_no 619 .byte 73 # DW_AT_type 620 .byte 19 # DW_FORM_ref4 621 .byte 0 # EOM(1) 622 .byte 0 # EOM(2) 623 .byte 10 # Abbreviation Code 624 .byte 46 # DW_TAG_subprogram 625 .byte 1 # DW_CHILDREN_yes 626 .byte 17 # DW_AT_low_pc 627 .ascii "\201>" # DW_FORM_GNU_addr_index 628 .byte 18 # DW_AT_high_pc 629 .byte 6 # DW_FORM_data4 630 .byte 64 # DW_AT_frame_base 631 .byte 24 # DW_FORM_exprloc 632 .ascii "\227B" # DW_AT_GNU_all_call_sites 633 .byte 25 # DW_FORM_flag_present 634 .byte 3 # DW_AT_name 635 .ascii "\202>" # DW_FORM_GNU_str_index 636 .byte 58 # DW_AT_decl_file 637 .byte 11 # DW_FORM_data1 638 .byte 59 # DW_AT_decl_line 639 .byte 11 # DW_FORM_data1 640 .byte 73 # DW_AT_type 641 .byte 19 # DW_FORM_ref4 642 .byte 63 # DW_AT_external 643 .byte 25 # DW_FORM_flag_present 644 .byte 0 # EOM(1) 645 .byte 0 # EOM(2) 646 .byte 11 # Abbreviation Code 647 .byte 5 # DW_TAG_formal_parameter 648 .byte 0 # DW_CHILDREN_no 649 .byte 2 # DW_AT_location 650 .byte 23 # DW_FORM_sec_offset 651 .byte 3 # DW_AT_name 652 .ascii "\202>" # DW_FORM_GNU_str_index 653 .byte 58 # DW_AT_decl_file 654 .byte 11 # DW_FORM_data1 655 .byte 59 # DW_AT_decl_line 656 .byte 11 # DW_FORM_data1 657 .byte 73 # DW_AT_type 658 .byte 19 # DW_FORM_ref4 659 .byte 0 # EOM(1) 660 .byte 0 # EOM(2) 661 .byte 12 # Abbreviation Code 662 .byte 29 # DW_TAG_inlined_subroutine 663 .byte 0 # DW_CHILDREN_no 664 .byte 49 # DW_AT_abstract_origin 665 .byte 19 # DW_FORM_ref4 666 .byte 85 # DW_AT_ranges 667 .byte 23 # DW_FORM_sec_offset 668 .byte 88 # DW_AT_call_file 669 .byte 11 # DW_FORM_data1 670 .byte 89 # DW_AT_call_line 671 .byte 11 # DW_FORM_data1 672 .byte 87 # DW_AT_call_column 673 .byte 11 # DW_FORM_data1 674 .byte 0 # EOM(1) 675 .byte 0 # EOM(2) 676 .byte 0 # EOM(3) 677 .section .debug_addr,"",@progbits 678.Laddr_table_base0: 679 .quad _ZZ3usePiS_E3Foo 680 .quad x 681 .quad y 682 .quad .Lfunc_begin0 683 .quad .Lfunc_begin1 684 .quad .Ltmp1 685 .quad .Ltmp3 686 .quad .Ltmp4 687 .quad .Ltmp2 688 .quad .Ltmp9 689 .quad .Ltmp11 690 .quad .Ltmp13 691 .quad .Ltmp15 692 .section .debug_gnu_pubnames,"",@progbits 693 .long .LpubNames_end0-.LpubNames_start0 # Length of Public Names Info 694.LpubNames_start0: 695 .short 2 # DWARF Version 696 .long .Lcu_begin0 # Offset of Compilation Unit Info 697 .long 52 # Compilation Unit Length 698 .long 37 # DIE offset 699 .byte 160 # Attributes: VARIABLE, STATIC 700 .asciz "use::Foo" # External Name 701 .long 71 # DIE offset 702 .byte 32 # Attributes: VARIABLE, EXTERNAL 703 .asciz "x" # External Name 704 .long 82 # DIE offset 705 .byte 32 # Attributes: VARIABLE, EXTERNAL 706 .asciz "y" # External Name 707 .long 93 # DIE offset 708 .byte 48 # Attributes: FUNCTION, EXTERNAL 709 .asciz "use" # External Name 710 .long 121 # DIE offset 711 .byte 48 # Attributes: FUNCTION, EXTERNAL 712 .asciz "main" # External Name 713 .long 0 # End Mark 714.LpubNames_end0: 715 .section .debug_gnu_pubtypes,"",@progbits 716 .long .LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info 717.LpubTypes_start0: 718 .short 2 # DWARF Version 719 .long .Lcu_begin0 # Offset of Compilation Unit Info 720 .long 52 # Compilation Unit Length 721 .long 67 # DIE offset 722 .byte 144 # Attributes: TYPE, STATIC 723 .asciz "int" # External Name 724 .long 183 # DIE offset 725 .byte 144 # Attributes: TYPE, STATIC 726 .asciz "char" # External Name 727 .long 0 # End Mark 728.LpubTypes_end0: 729 .ident "clang version 18.0.0 (git@github.com:llvm/llvm-project.git 3a8db0f4bfb57348f49d9603119fa157114bbf8e)" 730 .section ".note.GNU-stack","",@progbits 731 .addrsig 732 .addrsig_sym _ZGVZ3usePiS_E3Foo 733 .section .debug_line,"",@progbits 734.Lline_table_start0: 735