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