/third_party/libunwind/src/x86_64/ |
D | Gtrace.c | 214 unw_word_t cfa, in trace_init_addr() argument 237 d->cfa = cfa; in trace_init_addr() 276 unw_word_t cfa, in trace_lookup() argument 331 return trace_init_addr (frame, cursor, cfa, rip, rbp, rsp); in trace_lookup() 403 unw_word_t rbp, rsp, rip, cfa; in tdep_trace() local 413 Debug (1, "begin ip 0x%lx cfa 0x%lx\n", d->ip, d->cfa); in tdep_trace() 421 rsp = cfa = d->cfa; in tdep_trace() 442 depth, cfa, rip, rsp, rbp); in tdep_trace() 449 unw_tdep_frame_t *f = trace_lookup (cursor, cache, cfa, rip, rbp, rsp); in tdep_trace() 483 cfa = (f->cfa_reg_rsp ? rsp : rbp) + f->cfa_reg_offset; in tdep_trace() [all …]
|
D | Gstep.c | 71 c, c->dwarf.ip, c->dwarf.cfa); in unw_step() 114 unw_word_t prev_ip = c->dwarf.ip, prev_cfa = c->dwarf.cfa; in unw_step() 141 c->dwarf.loc[RIP] = DWARF_LOC (c->dwarf.cfa, 0); in unw_step() 142 c->dwarf.cfa += 8; in unw_step() 205 c->dwarf.cfa += 8; in unw_step() 231 rbp, c->dwarf.cfa, rbp1); in unw_step() 239 || rbp < c->dwarf.cfa in unw_step() 240 || (rbp - c->dwarf.cfa) > 0x4000) in unw_step() 250 c->dwarf.cfa += 16; in unw_step() 293 if (c->dwarf.ip == prev_ip && c->dwarf.cfa == prev_cfa) in unw_step()
|
D | Gos-linux.c | 48 dw->ip, dw->cfa, c->sigcontext_format); in tdep_fetch_frame() 57 dw->ip, dw->cfa, c->sigcontext_format); in tdep_cache_frame() 71 c->sigcontext_addr = dw->cfa; in tdep_reuse_frame() 75 dw->ip, dw->cfa, c->sigcontext_format, c->sigcontext_addr, in tdep_reuse_frame() 98 c->sigcontext_format, c->sigcontext_addr, c->dwarf.cfa); in x86_64_handle_signal_frame()
|
D | Gos-freebsd.c | 99 ucontext = c->dwarf.cfa + offsetof(struct sigframe, sf_uc); in x86_64_handle_signal_frame() 100 c->sigcontext_addr = c->dwarf.cfa; in x86_64_handle_signal_frame() 104 ret = dwarf_get (&c->dwarf, rsp_loc, &c->dwarf.cfa); in x86_64_handle_signal_frame() 139 c->dwarf.loc[RSP] = DWARF_VAL_LOC (c, c->dwarf.cfa + 8); in x86_64_handle_signal_frame() 140 c->dwarf.loc[RIP] = DWARF_LOC (c->dwarf.cfa, 0); in x86_64_handle_signal_frame() 150 c->dwarf.cfa += 8; in x86_64_handle_signal_frame()
|
D | Gos-solaris.c | 53 unw_word_t ucontext = c->dwarf.cfa + sizeof (struct sigframe); in x86_64_handle_signal_frame() 59 c->sigcontext_addr = c->dwarf.cfa; in x86_64_handle_signal_frame() 62 (uint64_t)c->dwarf.cfa, (uint64_t)ucontext); in x86_64_handle_signal_frame() 65 int ret = dwarf_get (&c->dwarf, rsp_loc, &c->dwarf.cfa); in x86_64_handle_signal_frame()
|
/third_party/libunwind/src/arm/ |
D | Gtrace.c | 220 unw_word_t cfa, in trace_init_addr() argument 244 d->cfa = cfa; in trace_init_addr() 280 unw_word_t cfa, in trace_lookup() argument 335 return trace_init_addr (frame, cursor, cfa, pc, r7, sp); in trace_lookup() 407 unw_word_t sp, pc, cfa, r7, lr; in tdep_trace() local 416 Debug (1, "begin ip 0x%x cfa 0x%x\n", d->ip, d->cfa); in tdep_trace() 424 sp = cfa = d->cfa; in tdep_trace() 446 depth, cfa, pc, sp, r7); in tdep_trace() 453 unw_tdep_frame_t *f = trace_lookup (cursor, cache, cfa, pc, r7, sp); in tdep_trace() 486 cfa = (f->cfa_reg_sp ? sp : r7) + f->cfa_reg_offset; in tdep_trace() [all …]
|
D | Gex_tables.c | 97 c->cfa -= edata->data; in arm_exidx_apply_cmd() 101 c->cfa += edata->data; in arm_exidx_apply_cmd() 108 c->loc[UNW_ARM_R0 + i] = DWARF_LOC (c->cfa, 0); in arm_exidx_apply_cmd() 109 c->cfa += 4; in arm_exidx_apply_cmd() 113 dwarf_get (c, c->loc[UNW_ARM_R13], &c->cfa); in arm_exidx_apply_cmd() 119 dwarf_get (c, c->loc[UNW_ARM_R13], &c->cfa); in arm_exidx_apply_cmd() 125 c->cfa += 8; in arm_exidx_apply_cmd() 127 c->cfa += 4; in arm_exidx_apply_cmd() 132 c->cfa += 8; in arm_exidx_apply_cmd() 137 c->cfa += 4; in arm_exidx_apply_cmd()
|
D | Gos-freebsd.c | 42 unw_word_t sc_addr, sp, sp_addr = c->dwarf.cfa; in arm_handle_signal_frame() 66 c->sigcontext_sp = c->dwarf.cfa; in arm_handle_signal_frame() 89 dwarf_get (&c->dwarf, c->dwarf.loc[UNW_ARM_R13], &c->dwarf.cfa); in arm_handle_signal_frame()
|
D | Gos-linux.c | 37 unw_word_t sc_addr, sp, sp_addr = c->dwarf.cfa; in arm_handle_signal_frame() 48 c->sigcontext_sp = c->dwarf.cfa; in arm_handle_signal_frame() 120 dwarf_get (&c->dwarf, c->dwarf.loc[UNW_ARM_R13], &c->dwarf.cfa); in arm_handle_signal_frame()
|
/third_party/libunwind/src/aarch64/ |
D | Gtrace.c | 218 unw_word_t cfa, in trace_init_addr() argument 242 d->cfa = cfa; in trace_init_addr() 278 unw_word_t cfa, in trace_lookup() argument 333 return trace_init_addr (frame, cursor, cfa, pc, fp, sp); in trace_lookup() 405 unw_word_t fp, sp, pc, cfa, lr; in tdep_trace() local 414 Debug (1, "begin ip 0x%lx cfa 0x%lx\n", d->ip, d->cfa); in tdep_trace() 422 sp = cfa = d->cfa; in tdep_trace() 444 depth, cfa, pc, sp, fp); in tdep_trace() 451 unw_tdep_frame_t *f = trace_lookup (cursor, cache, cfa, pc, fp, sp); in tdep_trace() 484 cfa = (f->cfa_reg_sp ? sp : fp) + f->cfa_reg_offset; in tdep_trace() [all …]
|
D | Gstep.c | 59 unw_word_t sc_addr, sp, sp_addr = c->dwarf.cfa; in aarch64_handle_signal_frame() 70 c->sigcontext_sp = c->dwarf.cfa; in aarch64_handle_signal_frame() 127 dwarf_get (&c->dwarf, c->dwarf.loc[UNW_AARCH64_SP], &c->dwarf.cfa); in aarch64_handle_signal_frame() 165 c, c->dwarf.ip, c->dwarf.cfa); in unw_step() 186 … (uintptr_t*)&(c->dwarf.ip), (uintptr_t*)&(c->dwarf.fp), (uintptr_t*)&(c->dwarf.cfa), buf, 128); in unw_step()
|
/third_party/elfutils/tests/ |
D | run-readelf-frames.sh | 85 offset r29 (x29) at cfa-32 86 offset r30 (x30) at cfa-24 88 offset r19 (x19) at cfa-16 134 offset r29 (x29) at cfa-64 135 offset r30 (x30) at cfa-56 137 offset r19 (x19) at cfa-48 138 offset r20 (x20) at cfa-40 140 offset r21 (x21) at cfa-32 141 offset r22 (x22) at cfa-24 143 offset r23 (x23) at cfa-16 [all …]
|
D | run-readelf-zdebug.sh | 430 offset r16 (rip) at cfa-8 455 offset r12 (r12) at cfa-40 456 offset r6 (rbp) at cfa-48 459 offset r3 (rbx) at cfa-56 460 offset r15 (r15) at cfa-16 461 offset r14 (r14) at cfa-24 462 offset r13 (r13) at cfa-32 528 offset r16 (rip) at cfa-8
|
/third_party/libunwind/src/x86/ |
D | Gstep.c | 69 ret = dwarf_get (&c->dwarf, c->dwarf.loc[EBP], &c->dwarf.cfa); in unw_step() 77 c->dwarf.cfa); in unw_step() 79 ebp_loc = DWARF_LOC (c->dwarf.cfa, 0); in unw_step() 80 esp_loc = DWARF_VAL_LOC (c, c->dwarf.cfa + 8); in unw_step() 81 eip_loc = DWARF_LOC (c->dwarf.cfa + 4, 0); in unw_step() 82 c->dwarf.cfa += 8; in unw_step()
|
D | Gos-linux.c | 84 unw_word_t siginfo_ptr_addr = c->dwarf.cfa + 4; in x86_handle_signal_frame() 85 unw_word_t sigcontext_ptr_addr = c->dwarf.cfa + 8; in x86_handle_signal_frame() 98 if (siginfo_ptr < c->dwarf.cfa in x86_handle_signal_frame() 99 || siginfo_ptr > c->dwarf.cfa + 256 in x86_handle_signal_frame() 100 || sigcontext_ptr < c->dwarf.cfa in x86_handle_signal_frame() 101 || sigcontext_ptr > c->dwarf.cfa + 256) in x86_handle_signal_frame() 105 c->sigcontext_addr = sc_addr = c->dwarf.cfa + 4; in x86_handle_signal_frame() 119 ret = dwarf_get (&c->dwarf, esp_loc, &c->dwarf.cfa); in x86_handle_signal_frame()
|
D | Gos-freebsd.c | 115 sf = (struct sigframe *)c->dwarf.cfa; in x86_handle_signal_frame() 117 c->sigcontext_addr = c->dwarf.cfa; in x86_handle_signal_frame() 120 ret = dwarf_get (&c->dwarf, esp_loc, &c->dwarf.cfa); in x86_handle_signal_frame() 143 c->dwarf.loc[EIP] = DWARF_LOC (c->dwarf.cfa, 0); in x86_handle_signal_frame() 144 c->dwarf.loc[ESP] = DWARF_VAL_LOC (c, c->dwarf.cfa + 4); in x86_handle_signal_frame() 146 c->dwarf.cfa += 4; in x86_handle_signal_frame()
|
/third_party/libunwind/src/riscv/ |
D | Gstep.c | 34 unw_word_t sp, sp_addr = c->dwarf.cfa; in riscv_handle_signal_frame() 71 dwarf_get (&c->dwarf, c->dwarf.loc[UNW_TDEP_SP], &c->dwarf.cfa); in riscv_handle_signal_frame() 85 c, c->dwarf.ip, c->dwarf.cfa); in unw_step() 106 …1, "DWARF unwinding failed (cursor=%p, ip=0x%016lx, sp=0x%016lx)\n", c, c->dwarf.ip, c->dwarf.cfa); in unw_step()
|
/third_party/libunwind/src/ppc32/ |
D | Gstep.c | 97 back_chain_loc = DWARF_LOC (c->dwarf.cfa + back_chain_offset, 0); in unw_step() 100 dwarf_get (&c->dwarf, back_chain_loc, &c->dwarf.cfa)) < 0) in unw_step() 107 if (c->dwarf.cfa == 0) in unw_step() 112 lr_save_loc = DWARF_LOC (c->dwarf.cfa + lr_save_offset, 0); in unw_step() 135 unw_word_t ucontext = c->dwarf.cfa + __SIGNAL_FRAMESIZE; in unw_step() 145 ret = dwarf_get (&c->dwarf, sp_loc, &c->dwarf.cfa); in unw_step()
|
/third_party/libunwind/src/tilegx/ |
D | Gis_signal_frame.c | 83 unw_word_t sc_addr, sp, sp_addr = c->dwarf.cfa; in tilegx_handle_signal_frame() 92 c->sigcontext_sp = c->dwarf.cfa; in tilegx_handle_signal_frame() 114 dwarf_get (&c->dwarf, c->dwarf.loc[UNW_TILEGX_R54], &c->dwarf.cfa); in tilegx_handle_signal_frame()
|
/third_party/libunwind/src/mips/ |
D | Gstep.c | 33 unw_word_t sc_addr, sp_addr = c->dwarf.cfa; in mips_handle_signal_frame() 93 dwarf_get (&c->dwarf, c->dwarf.loc[UNW_MIPS_R29], &c->dwarf.cfa); in mips_handle_signal_frame() 108 (unsigned long long)c->dwarf.cfa, (unsigned long long)fp); in mips_handle_signal_frame() 161 current_sp_val, current_fp_val, c->dwarf.cfa, in _step_n64() 169 } else if (is_valid_fp_val(c->dwarf.cfa, current_fp_val)) { in _step_n64()
|
/third_party/libunwind/src/dwarf/ |
D | Gparser.c | 788 unw_word_t regnum, addr, cfa, ip; in apply_reg_state() local 806 prev_cfa = c->cfa; in apply_reg_state() 825 cfa = c->cfa; in apply_reg_state() 829 if ((ret = unw_get_reg ((unw_cursor_t *) c, regnum, &cfa)) < 0) in apply_reg_state() 832 cfa += rs->reg.val[DWARF_CFA_OFF_COLUMN]; in apply_reg_state() 849 cfa = DWARF_GET_LOC (cfa_loc); in apply_reg_state() 873 new_loc[i] = DWARF_MEM_LOC (c, cfa + rs->reg.val[i]); in apply_reg_state() 892 if ((ret = eval_location_expr (c, cfa, as, a, addr, new_loc + i, arg)) < 0) in apply_reg_state() 900 if ((ret = eval_location_expr (c, cfa, as, a, addr, new_loc + i, arg)) < 0) in apply_reg_state() 915 c->cfa = cfa; in apply_reg_state() [all …]
|
/third_party/libunwind/tests/ |
D | x64-test-dwarf-expressions.S | 68 # of cfa-16 (cfa points at old rsp, cfa-8 is our rip, so we stored r12 at 69 # cfa-16).
|
/third_party/libunwind/src/sh/ |
D | Gstep.c | 35 unw_word_t sc_addr, sp, sp_addr = c->dwarf.cfa; in sh_handle_signal_frame() 46 c->sigcontext_sp = c->dwarf.cfa; in sh_handle_signal_frame() 92 dwarf_get (&c->dwarf, c->dwarf.loc[UNW_SH_R15], &c->dwarf.cfa); in sh_handle_signal_frame()
|
/third_party/libunwind/src/ppc64/ |
D | Gstep.c | 92 back_chain_loc = DWARF_LOC (c->dwarf.cfa + back_chain_offset, 0); in unw_step() 95 dwarf_get (&c->dwarf, back_chain_loc, &c->dwarf.cfa)) < 0) in unw_step() 102 if (c->dwarf.cfa == 0) in unw_step() 107 lr_save_loc = DWARF_LOC (c->dwarf.cfa + lr_save_offset, 0); in unw_step() 135 unw_word_t ucontext = c->dwarf.cfa + __SIGNAL_FRAMESIZE; in unw_step() 145 ret = dwarf_get (&c->dwarf, sp_loc, &c->dwarf.cfa); in unw_step() 467 c->dwarf.loc[UNW_PPC64_R2] = DWARF_LOC(c->dwarf.cfa + toc_save, 0); in unw_step()
|
/third_party/libunwind/src/s390x/ |
D | Gstep.c | 80 dwarf_get (&c->dwarf, c->dwarf.loc[UNW_S390X_R15], &c->dwarf.cfa); in s390x_handle_signal_frame() 100 c, c->dwarf.ip, c->dwarf.cfa); in unw_step()
|