Lines Matching full:dwarf
34 unw_word_t sp, sp_addr = c->dwarf.cfa; in riscv_handle_signal_frame()
37 if ((ret = dwarf_get (&c->dwarf, sp_loc, &sp)) < 0) in riscv_handle_signal_frame()
50 c->sigcontext_pc = c->dwarf.ip; in riscv_handle_signal_frame()
56 /* Update the dwarf cursor. in riscv_handle_signal_frame()
63 c->dwarf.loc[UNW_TDEP_IP] = DWARF_LOC (c->sigcontext_addr + SC_REG_OFFSET(UNW_RISCV_X0), 0); in riscv_handle_signal_frame()
67 c->dwarf.loc[i] = DWARF_LOC (c->sigcontext_addr + SC_REG_OFFSET(i), 0); in riscv_handle_signal_frame()
71 dwarf_get (&c->dwarf, c->dwarf.loc[UNW_TDEP_SP], &c->dwarf.cfa); in riscv_handle_signal_frame()
72 dwarf_get (&c->dwarf, c->dwarf.loc[UNW_TDEP_IP], &c->dwarf.ip); in riscv_handle_signal_frame()
85 c, c->dwarf.ip, c->dwarf.cfa); in unw_step()
97 /* Try DWARF-based unwinding... */ in unw_step()
98 ret = dwarf_step (&c->dwarf); in unw_step()
103 /* DWARF unwinding didn't work, let's tread carefully here */ in unw_step()
106 …Debug (1, "DWARF unwinding failed (cursor=%p, ip=0x%016lx, sp=0x%016lx)\n", c, c->dwarf.ip, c->dwa… in unw_step()
109 c->dwarf.loc[UNW_RISCV_PC] = c->dwarf.loc[UNW_RISCV_X1]; in unw_step()
110 c->dwarf.loc[UNW_RISCV_X1] = DWARF_NULL_LOC; in unw_step()
111 if (!DWARF_IS_NULL_LOC (c->dwarf.loc[UNW_RISCV_PC])) in unw_step()
113 ret = dwarf_get (&c->dwarf, c->dwarf.loc[UNW_RISCV_PC], &c->dwarf.ip); in unw_step()
120 Debug (2, "ra= 0x%016lx\n", c->dwarf.ip); in unw_step()
125 c->dwarf.ip = 0; in unw_step()
129 return (c->dwarf.ip == 0) ? 0 : 1; in unw_step()