From 7bcbd0e2e8f8d35cfb3002fb5c199c8464778b90 Mon Sep 17 00:00:00 2001 From: Adeel <3840695+am11@users.noreply.github.com> Date: Sun, 4 Sep 2022 17:36:56 +0300 Subject: Account for lr in aarch64's uc_addr --- src/aarch64/Ginit.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/aarch64/Ginit.c b/src/aarch64/Ginit.c index 1aa68b22..15fc3b9d 100644 --- a/src/aarch64/Ginit.c +++ b/src/aarch64/Ginit.c @@ -49,6 +49,8 @@ uc_addr (unw_tdep_context_t *uc, int reg) #ifdef __FreeBSD__ if (reg >= UNW_AARCH64_X0 && reg < UNW_AARCH64_X30) return &uc->uc_mcontext.mc_gpregs.gp_x[reg]; + else if (reg == UNW_AARCH64_X30) + return &uc->uc_mcontext.mc_gpregs.gp_lr; else if (reg == UNW_AARCH64_SP) return &uc->uc_mcontext.sp; else if (reg == UNW_AARCH64_PC) @@ -58,7 +60,7 @@ uc_addr (unw_tdep_context_t *uc, int reg) else return NULL; #else /* __FreeBSD__ */ - if (reg >= UNW_AARCH64_X0 && reg < UNW_AARCH64_X30) + if (reg >= UNW_AARCH64_X0 && reg <= UNW_AARCH64_X30) return &uc->uc_mcontext.regs[reg]; else if (reg == UNW_AARCH64_SP) return &uc->uc_mcontext.sp; -- cgit v1.2.1