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]);
 }

Reply via email to