Module Name: src
Committed By: palle
Date: Sun May 1 20:12:55 UTC 2016
Modified Files:
src/sys/arch/sparc64/sparc64: db_interface.c
Log Message:
fill_ddb_regs_from_tf() now fetches Local and In registers as well.
To generate a diff of this commit:
cvs rdiff -u -r1.132 -r1.133 src/sys/arch/sparc64/sparc64/db_interface.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/sparc64/sparc64/db_interface.c
diff -u src/sys/arch/sparc64/sparc64/db_interface.c:1.132 src/sys/arch/sparc64/sparc64/db_interface.c:1.133
--- src/sys/arch/sparc64/sparc64/db_interface.c:1.132 Thu Sep 12 19:38:59 2013
+++ src/sys/arch/sparc64/sparc64/db_interface.c Sun May 1 20:12:54 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: db_interface.c,v 1.132 2013/09/12 19:38:59 martin Exp $ */
+/* $NetBSD: db_interface.c,v 1.133 2016/05/01 20:12:54 palle Exp $ */
/*
* Copyright (c) 1996-2002 Eduardo Horvath. All rights reserved.
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: db_interface.c,v 1.132 2013/09/12 19:38:59 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: db_interface.c,v 1.133 2016/05/01 20:12:54 palle Exp $");
#ifdef _KERNEL_OPT
#include "opt_ddb.h"
@@ -232,7 +232,7 @@ fill_ddb_regs_from_tf(struct trapframe64
}
/* We should do a proper copyin and xlate 64-bit stack frames, but... */
/* if (tf->tf_tstate & TSTATE_PRIV) { .. } */
-
+
#if 0
/* make sure this is not causing ddb problems. */
if (tf->tf_out[6] & 1) {
@@ -257,6 +257,13 @@ fill_ddb_regs_from_tf(struct trapframe64
DDB_REGS->db_fr.fr_fp = (long)tfr.fr_fp;
DDB_REGS->db_fr.fr_pc = tfr.fr_pc;
}
+#else
+ int i;
+ for (i=0; i<8; i++)
+ DDB_REGS->db_fr.fr_local[i] = tf->tf_local[i];
+ for (i=0; i<6; i++)
+ DDB_REGS->db_fr.fr_arg[i] = tf->tf_in[i];
+ /* XXX tp and pc are missing */
#endif
DDB_REGS->db_tl = savetstate(&DDB_REGS->db_ts[0]);
}