From 0fc0793eeededdb484f97575db48fc5dcdffccbb Mon Sep 17 00:00:00 2001 From: Grzegorz Bernacki Date: Thu, 24 May 2012 12:41:57 +0000 Subject: [PATCH] Return Supervisor SP and LR registers instead of User ones while in KDB thread. Obtained from: Semihalf --- sys/arm/arm/gdb_machdep.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sys/arm/arm/gdb_machdep.c b/sys/arm/arm/gdb_machdep.c index eefb046ef90..2cccb7e6034 100644 --- a/sys/arm/arm/gdb_machdep.c +++ b/sys/arm/arm/gdb_machdep.c @@ -54,8 +54,12 @@ gdb_cpu_getreg(int regnum, size_t *regsz) *regsz = gdb_cpu_regsz(regnum); if (kdb_thread == curthread) { - if (regnum < 15) + if (regnum < 13) return (&kdb_frame->tf_r0 + regnum); + if (regnum == 13) + return (&kdb_frame->tf_svc_sp); + if (regnum == 14) + return (&kdb_frame->tf_svc_lr); if (regnum == 15) return (&kdb_frame->tf_pc); if (regnum == 25)