Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/arm/arm fix off-by-one in frame handling, and add a...



details:   https://anonhg.NetBSD.org/src/rev/685c3096e46c
branches:  trunk
changeset: 777406:685c3096e46c
user:      christos <christos%NetBSD.org@localhost>
date:      Fri Feb 17 16:26:51 2012 +0000

description:
fix off-by-one in frame handling, and add a missing db_read

diffstat:

 sys/arch/arm/arm/db_trace.c |  13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diffs (43 lines):

diff -r f3391b2ec21c -r 685c3096e46c sys/arch/arm/arm/db_trace.c
--- a/sys/arch/arm/arm/db_trace.c       Fri Feb 17 16:01:41 2012 +0000
+++ b/sys/arch/arm/arm/db_trace.c       Fri Feb 17 16:26:51 2012 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: db_trace.c,v 1.23 2012/02/16 02:32:40 christos Exp $   */
+/*     $NetBSD: db_trace.c,v 1.24 2012/02/17 16:26:51 christos Exp $   */
 
 /* 
  * Copyright (c) 2000, 2001 Ben Harris
@@ -31,7 +31,7 @@
 
 #include <sys/param.h>
 
-__KERNEL_RCSID(0, "$NetBSD: db_trace.c,v 1.23 2012/02/16 02:32:40 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: db_trace.c,v 1.24 2012/02/17 16:26:51 christos Exp $");
 
 #include <sys/proc.h>
 #include <arm/armreg.h>
@@ -161,9 +161,9 @@
                lastframe = frame;
 #ifndef _KERNEL
                uint32_t frameb[4];
-               db_read_bytes((db_addr_t)(frame - 4), sizeof(frameb),
+               db_read_bytes((db_addr_t)(frame - 3), sizeof(frameb),
                    (char *)frameb);
-               frame = frameb + 4;
+               frame = frameb + 3;
 #endif
 
                /*
@@ -189,7 +189,12 @@
 #endif
                (*pr)("\trsp=0x%08x rfp=0x%08x", frame[FR_RSP], frame[FR_RFP]);
 
+#ifndef _KERNEL
+               db_read_bytes((db_addr_t)((u_int32_t *)scp + scp_offset),
+                   sizeof(savecode), (void *)&savecode);
+#else
                savecode = ((u_int32_t *)scp)[scp_offset];
+#endif
                if ((savecode & 0x0e100000) == 0x08000000) {
                        /* Looks like an STM */
                        rp = frame - 4;



Home | Main Index | Thread Index | Old Index