681 lines · plain
1// Test various single-location and location list formats.2// REQUIRES: aarch64-registered-target3 4// RUN: llvm-mc -filetype=obj -triple=aarch64-linux-android -o %t.o %s5// RUN: echo 'FRAME %t.o 0x4' | llvm-symbolizer | FileCheck %s --check-prefix=CHECK06// RUN: echo 'FRAME %t.o 0x24' | llvm-symbolizer | FileCheck %s --check-prefix=CHECK17// RUN: echo 'FRAME %t.o 0x44' | llvm-symbolizer | FileCheck %s --check-prefix=CHECK28// RUN: echo 'FRAME %t.o 0x68' | llvm-symbolizer | FileCheck %s --check-prefix=CHECK39// RUN: echo 'FRAME %t.o 0x94' | llvm-symbolizer | FileCheck %s --check-prefix=CHECK410 11// Built from the following source with12// clang -target aarch64-linux-android -O3 -g -S13// and edited to replace DW_OP_fbreg with DW_OP_breg29 in func00 (search for EDIT below).14//15// void use(void *);16// void usei(int);17// void func00() {18// int x;19// use(&x);20// }21//22// void func0() {23// int x;24// use(&x);25// }26//27// int func1() {28// int x;29// use(&x);30// return x;31// }32//33// int func2() {34// int x = 1;35// use(&x);36// return x;37// }38//39// int func3(int b) {40// int x = b;41// usei(x);42// return x;43// }44 45// DW_AT_location (DW_OP_breg29 W29-4)46// CHECK0: func0047// CHECK0-NEXT: x48// CHECK0-NEXT: {{.*}}dbg.c:449// CHECK0-NEXT: -4 4 ??50 51// DW_AT_location (DW_OP_fbreg -4)52// CHECK1: func0{{$}}53// CHECK1-NEXT: x54// CHECK1-NEXT: {{.*}}dbg.c:955// CHECK1-NEXT: -4 4 ??56 57// DW_AT_location (0x00000000: 58// [0x000000000000004c, 0x0000000000000058): DW_OP_breg29 W29-459// [0x0000000000000058, 0x000000000000005c): DW_OP_reg0 W0)60// CHECK2: func161// CHECK2-NEXT: x62// CHECK2-NEXT: {{.*}}dbg.c:1463// CHECK2-NEXT: -4 4 ??64 65// DW_AT_location (0x00000037: 66// [0x0000000000000078, 0x0000000000000080): DW_OP_consts +1, DW_OP_stack_value67// [0x0000000000000080, 0x0000000000000088): DW_OP_breg29 W29-468// [0x0000000000000088, 0x000000000000008c): DW_OP_reg0 W0)69// CHECK3: func270// CHECK3-NEXT: x71// CHECK3-NEXT: {{.*}}dbg.c:2072// CHECK3-NEXT: -4 4 ??73 74// No stack location.75// DW_AT_location (0x00000083: 76// [0x0000000000000090, 0x00000000000000a0): DW_OP_reg0 W077// [0x00000000000000a0, 0x00000000000000ac): DW_OP_reg19 W19)78// CHECK4: func379// CHECK4-NEXT: b80// CHECK4-NEXT: {{.*}}dbg.c:2581// CHECK4-NEXT: ?? 4 ??82// CHECK4-NEXT: func383// CHECK4-NEXT: x84// CHECK4-NEXT: {{.*}}dbg.c:2685// CHECK4-NEXT: ?? 4 ??86//87 .text88 .file "dbg.c"89 .globl func00 // -- Begin function func0090 .p2align 291 .type func00,@function92func00: // @func0093.Lfunc_begin0:94 .file 1 "/tmp" "dbg.c"95 .loc 1 3 0 // /tmp/dbg.c:3:096 .cfi_sections .debug_frame97 .cfi_startproc98// %bb.0: // %entry99 sub sp, sp, #32 // =32100 stp x29, x30, [sp, #16] // 16-byte Folded Spill101 add x29, sp, #16 // =16102 .cfi_def_cfa w29, 16103 .cfi_offset w30, -8104 .cfi_offset w29, -16105.Ltmp0:106 //DEBUG_VALUE: func00:x <- [DW_OP_constu 4, DW_OP_minus, DW_OP_deref] $fp107 .loc 1 5 3 prologue_end // /tmp/dbg.c:5:3108 sub x0, x29, #4 // =4109 bl use110.Ltmp1:111 .loc 1 6 1 // /tmp/dbg.c:6:1112 ldp x29, x30, [sp, #16] // 16-byte Folded Reload113 add sp, sp, #32 // =32114 ret115.Ltmp2:116.Lfunc_end0:117 .size func00, .Lfunc_end0-func00118 .cfi_endproc119 // -- End function120 .globl func0 // -- Begin function func0121 .p2align 2122 .type func0,@function123func0: // @func0124.Lfunc_begin1:125 .loc 1 8 0 // /tmp/dbg.c:8:0126 .cfi_startproc127// %bb.0: // %entry128 sub sp, sp, #32 // =32129 stp x29, x30, [sp, #16] // 16-byte Folded Spill130 add x29, sp, #16 // =16131 .cfi_def_cfa w29, 16132 .cfi_offset w30, -8133 .cfi_offset w29, -16134.Ltmp3:135 //DEBUG_VALUE: func0:x <- [DW_OP_constu 4, DW_OP_minus, DW_OP_deref] $fp136 .loc 1 10 3 prologue_end // /tmp/dbg.c:10:3137 sub x0, x29, #4 // =4138 bl use139.Ltmp4:140 .loc 1 11 1 // /tmp/dbg.c:11:1141 ldp x29, x30, [sp, #16] // 16-byte Folded Reload142 add sp, sp, #32 // =32143 ret144.Ltmp5:145.Lfunc_end1:146 .size func0, .Lfunc_end1-func0147 .cfi_endproc148 // -- End function149 .globl func1 // -- Begin function func1150 .p2align 2151 .type func1,@function152func1: // @func1153.Lfunc_begin2:154 .loc 1 13 0 // /tmp/dbg.c:13:0155 .cfi_startproc156// %bb.0: // %entry157 sub sp, sp, #32 // =32158 stp x29, x30, [sp, #16] // 16-byte Folded Spill159 add x29, sp, #16 // =16160 .cfi_def_cfa w29, 16161 .cfi_offset w30, -8162 .cfi_offset w29, -16163.Ltmp6:164 //DEBUG_VALUE: func1:x <- [DW_OP_constu 4, DW_OP_minus, DW_OP_deref] $fp165 .loc 1 15 3 prologue_end // /tmp/dbg.c:15:3166 sub x0, x29, #4 // =4167 bl use168.Ltmp7:169 .loc 1 16 10 // /tmp/dbg.c:16:10170 ldur w0, [x29, #-4]171.Ltmp8:172 //DEBUG_VALUE: func1:x <- $w0173 .loc 1 16 3 is_stmt 0 // /tmp/dbg.c:16:3174 ldp x29, x30, [sp, #16] // 16-byte Folded Reload175 add sp, sp, #32 // =32176 ret177.Ltmp9:178.Lfunc_end2:179 .size func1, .Lfunc_end2-func1180 .cfi_endproc181 // -- End function182 .globl func2 // -- Begin function func2183 .p2align 2184 .type func2,@function185func2: // @func2186.Lfunc_begin3:187 .loc 1 19 0 is_stmt 1 // /tmp/dbg.c:19:0188 .cfi_startproc189// %bb.0: // %entry190 sub sp, sp, #32 // =32191 stp x29, x30, [sp, #16] // 16-byte Folded Spill192 add x29, sp, #16 // =16193 .cfi_def_cfa w29, 16194 .cfi_offset w30, -8195 .cfi_offset w29, -16196 mov w8, #1197.Ltmp10:198 //DEBUG_VALUE: func2:x <- 1199 .loc 1 21 3 prologue_end // /tmp/dbg.c:21:3200 sub x0, x29, #4 // =4201 .loc 1 20 7 // /tmp/dbg.c:20:7202 stur w8, [x29, #-4]203.Ltmp11:204 //DEBUG_VALUE: func2:x <- [DW_OP_constu 4, DW_OP_minus, DW_OP_deref] $fp205 .loc 1 21 3 // /tmp/dbg.c:21:3206 bl use207.Ltmp12:208 .loc 1 22 10 // /tmp/dbg.c:22:10209 ldur w0, [x29, #-4]210.Ltmp13:211 //DEBUG_VALUE: func2:x <- $w0212 .loc 1 22 3 is_stmt 0 // /tmp/dbg.c:22:3213 ldp x29, x30, [sp, #16] // 16-byte Folded Reload214 add sp, sp, #32 // =32215 ret216.Ltmp14:217.Lfunc_end3:218 .size func2, .Lfunc_end3-func2219 .cfi_endproc220 // -- End function221 .globl func3 // -- Begin function func3222 .p2align 2223 .type func3,@function224func3: // @func3225.Lfunc_begin4:226 .loc 1 25 0 is_stmt 1 // /tmp/dbg.c:25:0227 .cfi_startproc228// %bb.0: // %entry229 //DEBUG_VALUE: func3:b <- $w0230 stp x29, x30, [sp, #-32]! // 16-byte Folded Spill231 str x19, [sp, #16] // 8-byte Folded Spill232 mov x29, sp233 .cfi_def_cfa w29, 32234 .cfi_offset w19, -16235 .cfi_offset w30, -24236 .cfi_offset w29, -32237.Ltmp15:238 //DEBUG_VALUE: func3:x <- $w0239 mov w19, w0240.Ltmp16:241 //DEBUG_VALUE: func3:x <- $w19242 //DEBUG_VALUE: func3:b <- $w19243 .loc 1 27 3 prologue_end // /tmp/dbg.c:27:3244 bl usei245.Ltmp17:246 .loc 1 28 3 // /tmp/dbg.c:28:3247 mov w0, w19248 ldr x19, [sp, #16] // 8-byte Folded Reload249.Ltmp18:250 ldp x29, x30, [sp], #32 // 16-byte Folded Reload251 ret252.Ltmp19:253.Lfunc_end4:254 .size func3, .Lfunc_end4-func3255 .cfi_endproc256 // -- End function257 .section .debug_str,"MS",@progbits,1258.Linfo_string0:259 .asciz "clang version 10.0.0 (git@github.com:llvm/llvm-project.git 092ef9c6cf4678d2b8df7738110ecd405fe1fe3d)" // string offset=0260.Linfo_string1:261 .asciz "/tmp/dbg.c" // string offset=101262.Linfo_string2:263 .asciz "/code/build-llvm-cmake" // string offset=112264.Linfo_string3:265 .asciz "use" // string offset=135266.Linfo_string4:267 .asciz "usei" // string offset=139268.Linfo_string5:269 .asciz "int" // string offset=144270.Linfo_string6:271 .asciz "func00" // string offset=148272.Linfo_string7:273 .asciz "func0" // string offset=155274.Linfo_string8:275 .asciz "func1" // string offset=161276.Linfo_string9:277 .asciz "func2" // string offset=167278.Linfo_string10:279 .asciz "func3" // string offset=173280.Linfo_string11:281 .asciz "x" // string offset=179282.Linfo_string12:283 .asciz "b" // string offset=181284 .section .debug_loc,"",@progbits285.Ldebug_loc0:286 .xword .Ltmp6-.Lfunc_begin0287 .xword .Ltmp8-.Lfunc_begin0288 .hword 2 // Loc expr size289 .byte 141 // DW_OP_breg29290 .byte 124 // -4291 .xword .Ltmp8-.Lfunc_begin0292 .xword .Lfunc_end2-.Lfunc_begin0293 .hword 1 // Loc expr size294 .byte 80 // DW_OP_reg0295 .xword 0296 .xword 0297.Ldebug_loc1:298 .xword .Ltmp10-.Lfunc_begin0299 .xword .Ltmp11-.Lfunc_begin0300 .hword 3 // Loc expr size301 .byte 17 // DW_OP_consts302 .byte 1 // 1303 .byte 159 // DW_OP_stack_value304 .xword .Ltmp11-.Lfunc_begin0305 .xword .Ltmp13-.Lfunc_begin0306 .hword 2 // Loc expr size307 .byte 141 // DW_OP_breg29308 .byte 124 // -4309 .xword .Ltmp13-.Lfunc_begin0310 .xword .Lfunc_end3-.Lfunc_begin0311 .hword 1 // Loc expr size312 .byte 80 // DW_OP_reg0313 .xword 0314 .xword 0315.Ldebug_loc2:316 .xword .Lfunc_begin4-.Lfunc_begin0317 .xword .Ltmp16-.Lfunc_begin0318 .hword 1 // Loc expr size319 .byte 80 // DW_OP_reg0320 .xword .Ltmp16-.Lfunc_begin0321 .xword .Ltmp18-.Lfunc_begin0322 .hword 1 // Loc expr size323 .byte 99 // DW_OP_reg19324 .xword 0325 .xword 0326.Ldebug_loc3:327 .xword .Ltmp15-.Lfunc_begin0328 .xword .Ltmp16-.Lfunc_begin0329 .hword 1 // Loc expr size330 .byte 80 // DW_OP_reg0331 .xword .Ltmp16-.Lfunc_begin0332 .xword .Ltmp18-.Lfunc_begin0333 .hword 1 // Loc expr size334 .byte 99 // DW_OP_reg19335 .xword 0336 .xword 0337 .section .debug_abbrev,"",@progbits338 .byte 1 // Abbreviation Code339 .byte 17 // DW_TAG_compile_unit340 .byte 1 // DW_CHILDREN_yes341 .byte 37 // DW_AT_producer342 .byte 14 // DW_FORM_strp343 .byte 19 // DW_AT_language344 .byte 5 // DW_FORM_data2345 .byte 3 // DW_AT_name346 .byte 14 // DW_FORM_strp347 .byte 16 // DW_AT_stmt_list348 .byte 23 // DW_FORM_sec_offset349 .byte 27 // DW_AT_comp_dir350 .byte 14 // DW_FORM_strp351 .byte 17 // DW_AT_low_pc352 .byte 1 // DW_FORM_addr353 .byte 18 // DW_AT_high_pc354 .byte 6 // DW_FORM_data4355 .byte 0 // EOM(1)356 .byte 0 // EOM(2)357 .byte 2 // Abbreviation Code358 .byte 46 // DW_TAG_subprogram359 .byte 1 // DW_CHILDREN_yes360 .byte 17 // DW_AT_low_pc361 .byte 1 // DW_FORM_addr362 .byte 18 // DW_AT_high_pc363 .byte 6 // DW_FORM_data4364 .byte 64 // DW_AT_frame_base365 .byte 24 // DW_FORM_exprloc366 .ascii "\227B" // DW_AT_GNU_all_call_sites367 .byte 25 // DW_FORM_flag_present368 .byte 3 // DW_AT_name369 .byte 14 // DW_FORM_strp370 .byte 58 // DW_AT_decl_file371 .byte 11 // DW_FORM_data1372 .byte 59 // DW_AT_decl_line373 .byte 11 // DW_FORM_data1374 .byte 63 // DW_AT_external375 .byte 25 // DW_FORM_flag_present376 .byte 0 // EOM(1)377 .byte 0 // EOM(2)378 .byte 3 // Abbreviation Code379 .byte 52 // DW_TAG_variable380 .byte 0 // DW_CHILDREN_no381 .byte 2 // DW_AT_location382 .byte 24 // DW_FORM_exprloc383 .byte 3 // DW_AT_name384 .byte 14 // DW_FORM_strp385 .byte 58 // DW_AT_decl_file386 .byte 11 // DW_FORM_data1387 .byte 59 // DW_AT_decl_line388 .byte 11 // DW_FORM_data1389 .byte 73 // DW_AT_type390 .byte 19 // DW_FORM_ref4391 .byte 0 // EOM(1)392 .byte 0 // EOM(2)393 .byte 4 // Abbreviation Code394 .ascii "\211\202\001" // DW_TAG_GNU_call_site395 .byte 0 // DW_CHILDREN_no396 .byte 49 // DW_AT_abstract_origin397 .byte 19 // DW_FORM_ref4398 .byte 17 // DW_AT_low_pc399 .byte 1 // DW_FORM_addr400 .byte 0 // EOM(1)401 .byte 0 // EOM(2)402 .byte 5 // Abbreviation Code403 .byte 46 // DW_TAG_subprogram404 .byte 1 // DW_CHILDREN_yes405 .byte 3 // DW_AT_name406 .byte 14 // DW_FORM_strp407 .byte 58 // DW_AT_decl_file408 .byte 11 // DW_FORM_data1409 .byte 59 // DW_AT_decl_line410 .byte 11 // DW_FORM_data1411 .byte 39 // DW_AT_prototyped412 .byte 25 // DW_FORM_flag_present413 .byte 60 // DW_AT_declaration414 .byte 25 // DW_FORM_flag_present415 .byte 63 // DW_AT_external416 .byte 25 // DW_FORM_flag_present417 .byte 0 // EOM(1)418 .byte 0 // EOM(2)419 .byte 6 // Abbreviation Code420 .byte 5 // DW_TAG_formal_parameter421 .byte 0 // DW_CHILDREN_no422 .byte 73 // DW_AT_type423 .byte 19 // DW_FORM_ref4424 .byte 0 // EOM(1)425 .byte 0 // EOM(2)426 .byte 7 // Abbreviation Code427 .byte 15 // DW_TAG_pointer_type428 .byte 0 // DW_CHILDREN_no429 .byte 0 // EOM(1)430 .byte 0 // EOM(2)431 .byte 8 // Abbreviation Code432 .byte 46 // DW_TAG_subprogram433 .byte 1 // DW_CHILDREN_yes434 .byte 17 // DW_AT_low_pc435 .byte 1 // DW_FORM_addr436 .byte 18 // DW_AT_high_pc437 .byte 6 // DW_FORM_data4438 .byte 64 // DW_AT_frame_base439 .byte 24 // DW_FORM_exprloc440 .ascii "\227B" // DW_AT_GNU_all_call_sites441 .byte 25 // DW_FORM_flag_present442 .byte 3 // DW_AT_name443 .byte 14 // DW_FORM_strp444 .byte 58 // DW_AT_decl_file445 .byte 11 // DW_FORM_data1446 .byte 59 // DW_AT_decl_line447 .byte 11 // DW_FORM_data1448 .byte 73 // DW_AT_type449 .byte 19 // DW_FORM_ref4450 .byte 63 // DW_AT_external451 .byte 25 // DW_FORM_flag_present452 .byte 0 // EOM(1)453 .byte 0 // EOM(2)454 .byte 9 // Abbreviation Code455 .byte 52 // DW_TAG_variable456 .byte 0 // DW_CHILDREN_no457 .byte 2 // DW_AT_location458 .byte 23 // DW_FORM_sec_offset459 .byte 3 // DW_AT_name460 .byte 14 // DW_FORM_strp461 .byte 58 // DW_AT_decl_file462 .byte 11 // DW_FORM_data1463 .byte 59 // DW_AT_decl_line464 .byte 11 // DW_FORM_data1465 .byte 73 // DW_AT_type466 .byte 19 // DW_FORM_ref4467 .byte 0 // EOM(1)468 .byte 0 // EOM(2)469 .byte 10 // Abbreviation Code470 .byte 46 // DW_TAG_subprogram471 .byte 1 // DW_CHILDREN_yes472 .byte 17 // DW_AT_low_pc473 .byte 1 // DW_FORM_addr474 .byte 18 // DW_AT_high_pc475 .byte 6 // DW_FORM_data4476 .byte 64 // DW_AT_frame_base477 .byte 24 // DW_FORM_exprloc478 .ascii "\227B" // DW_AT_GNU_all_call_sites479 .byte 25 // DW_FORM_flag_present480 .byte 3 // DW_AT_name481 .byte 14 // DW_FORM_strp482 .byte 58 // DW_AT_decl_file483 .byte 11 // DW_FORM_data1484 .byte 59 // DW_AT_decl_line485 .byte 11 // DW_FORM_data1486 .byte 39 // DW_AT_prototyped487 .byte 25 // DW_FORM_flag_present488 .byte 73 // DW_AT_type489 .byte 19 // DW_FORM_ref4490 .byte 63 // DW_AT_external491 .byte 25 // DW_FORM_flag_present492 .byte 0 // EOM(1)493 .byte 0 // EOM(2)494 .byte 11 // Abbreviation Code495 .byte 5 // DW_TAG_formal_parameter496 .byte 0 // DW_CHILDREN_no497 .byte 2 // DW_AT_location498 .byte 23 // DW_FORM_sec_offset499 .byte 3 // DW_AT_name500 .byte 14 // DW_FORM_strp501 .byte 58 // DW_AT_decl_file502 .byte 11 // DW_FORM_data1503 .byte 59 // DW_AT_decl_line504 .byte 11 // DW_FORM_data1505 .byte 73 // DW_AT_type506 .byte 19 // DW_FORM_ref4507 .byte 0 // EOM(1)508 .byte 0 // EOM(2)509 .byte 12 // Abbreviation Code510 .byte 36 // DW_TAG_base_type511 .byte 0 // DW_CHILDREN_no512 .byte 3 // DW_AT_name513 .byte 14 // DW_FORM_strp514 .byte 62 // DW_AT_encoding515 .byte 11 // DW_FORM_data1516 .byte 11 // DW_AT_byte_size517 .byte 11 // DW_FORM_data1518 .byte 0 // EOM(1)519 .byte 0 // EOM(2)520 .byte 0 // EOM(3)521 .section .debug_info,"",@progbits522.Lcu_begin0:523 .word .Ldebug_info_end0-.Ldebug_info_start0 // Length of Unit524.Ldebug_info_start0:525 .hword 4 // DWARF version number526 .word .debug_abbrev // Offset Into Abbrev. Section527 .byte 8 // Address Size (in bytes)528 .byte 1 // Abbrev [1] 0xb:0x155 DW_TAG_compile_unit529 .word .Linfo_string0 // DW_AT_producer530 .hword 12 // DW_AT_language531 .word .Linfo_string1 // DW_AT_name532 .word .Lline_table_start0 // DW_AT_stmt_list533 .word .Linfo_string2 // DW_AT_comp_dir534 .xword .Lfunc_begin0 // DW_AT_low_pc535 .word .Lfunc_end4-.Lfunc_begin0 // DW_AT_high_pc536 .byte 2 // Abbrev [2] 0x2a:0x31 DW_TAG_subprogram537 .xword .Lfunc_begin0 // DW_AT_low_pc538 .word .Lfunc_end0-.Lfunc_begin0 // DW_AT_high_pc539 .byte 1 // DW_AT_frame_base540 .byte 109541 // DW_AT_GNU_all_call_sites542 .word .Linfo_string6 // DW_AT_name543 .byte 1 // DW_AT_decl_file544 .byte 3 // DW_AT_decl_line545 // DW_AT_external546 .byte 3 // Abbrev [3] 0x3f:0xe DW_TAG_variable547 .byte 2 // DW_AT_location548 .byte 141 // DW_OP_breg29 !!! EDIT: 145 (fbreg) to 141 (breg29)549 .byte 124 // -4550 .word .Linfo_string11 // DW_AT_name551 .byte 1 // DW_AT_decl_file552 .byte 4 // DW_AT_decl_line553 .word 344 // DW_AT_type554 .byte 4 // Abbrev [4] 0x4d:0xd DW_TAG_GNU_call_site555 .word 91 // DW_AT_abstract_origin556 .xword .Ltmp1 // DW_AT_low_pc557 .byte 0 // End Of Children Mark558 .byte 5 // Abbrev [5] 0x5b:0xd DW_TAG_subprogram559 .word .Linfo_string3 // DW_AT_name560 .byte 1 // DW_AT_decl_file561 .byte 1 // DW_AT_decl_line562 // DW_AT_prototyped563 // DW_AT_declaration564 // DW_AT_external565 .byte 6 // Abbrev [6] 0x62:0x5 DW_TAG_formal_parameter566 .word 104 // DW_AT_type567 .byte 0 // End Of Children Mark568 .byte 7 // Abbrev [7] 0x68:0x1 DW_TAG_pointer_type569 .byte 2 // Abbrev [2] 0x69:0x31 DW_TAG_subprogram570 .xword .Lfunc_begin1 // DW_AT_low_pc571 .word .Lfunc_end1-.Lfunc_begin1 // DW_AT_high_pc572 .byte 1 // DW_AT_frame_base573 .byte 109574 // DW_AT_GNU_all_call_sites575 .word .Linfo_string7 // DW_AT_name576 .byte 1 // DW_AT_decl_file577 .byte 8 // DW_AT_decl_line578 // DW_AT_external579 .byte 3 // Abbrev [3] 0x7e:0xe DW_TAG_variable580 .byte 2 // DW_AT_location581 .byte 145582 .byte 124583 .word .Linfo_string11 // DW_AT_name584 .byte 1 // DW_AT_decl_file585 .byte 9 // DW_AT_decl_line586 .word 344 // DW_AT_type587 .byte 4 // Abbrev [4] 0x8c:0xd DW_TAG_GNU_call_site588 .word 91 // DW_AT_abstract_origin589 .xword .Ltmp4 // DW_AT_low_pc590 .byte 0 // End Of Children Mark591 .byte 8 // Abbrev [8] 0x9a:0x36 DW_TAG_subprogram592 .xword .Lfunc_begin2 // DW_AT_low_pc593 .word .Lfunc_end2-.Lfunc_begin2 // DW_AT_high_pc594 .byte 1 // DW_AT_frame_base595 .byte 109596 // DW_AT_GNU_all_call_sites597 .word .Linfo_string8 // DW_AT_name598 .byte 1 // DW_AT_decl_file599 .byte 13 // DW_AT_decl_line600 .word 344 // DW_AT_type601 // DW_AT_external602 .byte 9 // Abbrev [9] 0xb3:0xf DW_TAG_variable603 .word .Ldebug_loc0 // DW_AT_location604 .word .Linfo_string11 // DW_AT_name605 .byte 1 // DW_AT_decl_file606 .byte 14 // DW_AT_decl_line607 .word 344 // DW_AT_type608 .byte 4 // Abbrev [4] 0xc2:0xd DW_TAG_GNU_call_site609 .word 91 // DW_AT_abstract_origin610 .xword .Ltmp7 // DW_AT_low_pc611 .byte 0 // End Of Children Mark612 .byte 8 // Abbrev [8] 0xd0:0x36 DW_TAG_subprogram613 .xword .Lfunc_begin3 // DW_AT_low_pc614 .word .Lfunc_end3-.Lfunc_begin3 // DW_AT_high_pc615 .byte 1 // DW_AT_frame_base616 .byte 109617 // DW_AT_GNU_all_call_sites618 .word .Linfo_string9 // DW_AT_name619 .byte 1 // DW_AT_decl_file620 .byte 19 // DW_AT_decl_line621 .word 344 // DW_AT_type622 // DW_AT_external623 .byte 9 // Abbrev [9] 0xe9:0xf DW_TAG_variable624 .word .Ldebug_loc1 // DW_AT_location625 .word .Linfo_string11 // DW_AT_name626 .byte 1 // DW_AT_decl_file627 .byte 20 // DW_AT_decl_line628 .word 344 // DW_AT_type629 .byte 4 // Abbrev [4] 0xf8:0xd DW_TAG_GNU_call_site630 .word 91 // DW_AT_abstract_origin631 .xword .Ltmp12 // DW_AT_low_pc632 .byte 0 // End Of Children Mark633 .byte 10 // Abbrev [10] 0x106:0x45 DW_TAG_subprogram634 .xword .Lfunc_begin4 // DW_AT_low_pc635 .word .Lfunc_end4-.Lfunc_begin4 // DW_AT_high_pc636 .byte 1 // DW_AT_frame_base637 .byte 109638 // DW_AT_GNU_all_call_sites639 .word .Linfo_string10 // DW_AT_name640 .byte 1 // DW_AT_decl_file641 .byte 25 // DW_AT_decl_line642 // DW_AT_prototyped643 .word 344 // DW_AT_type644 // DW_AT_external645 .byte 11 // Abbrev [11] 0x11f:0xf DW_TAG_formal_parameter646 .word .Ldebug_loc2 // DW_AT_location647 .word .Linfo_string12 // DW_AT_name648 .byte 1 // DW_AT_decl_file649 .byte 25 // DW_AT_decl_line650 .word 344 // DW_AT_type651 .byte 9 // Abbrev [9] 0x12e:0xf DW_TAG_variable652 .word .Ldebug_loc3 // DW_AT_location653 .word .Linfo_string11 // DW_AT_name654 .byte 1 // DW_AT_decl_file655 .byte 26 // DW_AT_decl_line656 .word 344 // DW_AT_type657 .byte 4 // Abbrev [4] 0x13d:0xd DW_TAG_GNU_call_site658 .word 331 // DW_AT_abstract_origin659 .xword .Ltmp17 // DW_AT_low_pc660 .byte 0 // End Of Children Mark661 .byte 5 // Abbrev [5] 0x14b:0xd DW_TAG_subprogram662 .word .Linfo_string4 // DW_AT_name663 .byte 1 // DW_AT_decl_file664 .byte 2 // DW_AT_decl_line665 // DW_AT_prototyped666 // DW_AT_declaration667 // DW_AT_external668 .byte 6 // Abbrev [6] 0x152:0x5 DW_TAG_formal_parameter669 .word 344 // DW_AT_type670 .byte 0 // End Of Children Mark671 .byte 12 // Abbrev [12] 0x158:0x7 DW_TAG_base_type672 .word .Linfo_string5 // DW_AT_name673 .byte 5 // DW_AT_encoding674 .byte 4 // DW_AT_byte_size675 .byte 0 // End Of Children Mark676.Ldebug_info_end0:677 .ident "clang version 10.0.0 (git@github.com:llvm/llvm-project.git 092ef9c6cf4678d2b8df7738110ecd405fe1fe3d)"678 .section ".note.GNU-stack","",@progbits679 .section .debug_line,"",@progbits680.Lline_table_start0:681