summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorgber <gber@FreeBSD.org>2012-05-24 12:41:57 +0000
committergber <gber@FreeBSD.org>2012-05-24 12:41:57 +0000
commit5b4a3e5f4a4045127c253ffac2a618946f83912b (patch)
tree6c1fa0edb3e1dd26b7abc41e092bf7fa186c298d /sys
parentabae368f39b85b293231ca7ae983d1f1727f6f51 (diff)
downloadFreeBSD-src-5b4a3e5f4a4045127c253ffac2a618946f83912b.zip
FreeBSD-src-5b4a3e5f4a4045127c253ffac2a618946f83912b.tar.gz
Return Supervisor SP and LR registers instead of User ones while in KDB thread.
Obtained from: Semihalf
Diffstat (limited to 'sys')
-rw-r--r--sys/arm/arm/gdb_machdep.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/arm/arm/gdb_machdep.c b/sys/arm/arm/gdb_machdep.c
index eefb046..2cccb7e6 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)
OpenPOWER on IntegriCloud