in the new common backtrace/context code.
Unified · Split
| @@ -597,7 +597,7 @@ static void rt_getcontext(ucontext_t *uc, rt_context *rc) · 596 unmodified lines | |||
| 597 | rc->sp = uc->uc_mcontext.arm_sp; | 597 | rc->sp = uc->uc_mcontext.arm_sp; |
| 598 | #elif defined(__aarch64__) | 598 | #elif defined(__aarch64__) |
| 599 | rc->ip = uc->uc_mcontext.pc; | 599 | rc->ip = uc->uc_mcontext.pc; |
| 600 | rc->fp = (addr_t *)uc->uc_mcontext.regs[29]; | 600 | rc->fp = uc->uc_mcontext.regs[29]; |
| 601 | #endif | 601 | #endif |
| 602 | } | 602 | } |
| 603 | 603 | ||
| @@ -760,7 +760,7 @@ static int rt_get_caller_pc(addr_t *paddr, rt_context *rc, int level) · 156 unmodified lines | |||
| 760 | if (level == 0) { | 760 | if (level == 0) { |
| 761 | *paddr = rc->ip; | 761 | *paddr = rc->ip; |
| 762 | } else { | 762 | } else { |
| 763 | addr_t *fp = rc->fp; | 763 | addr_t *fp = (addr_t*)rc->fp; |
| 764 | while (--level) | 764 | while (--level) |
| 765 | fp = (addr_t *)fp[0]; | 765 | fp = (addr_t *)fp[0]; |
| 766 | *paddr = fp[1]; | 766 | *paddr = fp[1]; |