summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorMichael Shalayeff <mickey@cvs.openbsd.org>2006-11-03 02:52:03 +0000
committerMichael Shalayeff <mickey@cvs.openbsd.org>2006-11-03 02:52:03 +0000
commit7ae89376ea70287aec0a7c704b91601041837874 (patch)
tree5d5d5afde9b5f307f9c74adc4f4429f43cb87eae /sys/arch
parent288e89e5592b11275303a012d1ebb11df116837c (diff)
step and stuff works in ddb now too
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/sh/sh/trap.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/sys/arch/sh/sh/trap.c b/sys/arch/sh/sh/trap.c
index 2c60d3adb1c..33471bca27d 100644
--- a/sys/arch/sh/sh/trap.c
+++ b/sys/arch/sh/sh/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.3 2006/10/23 19:56:53 miod Exp $ */
+/* $OpenBSD: trap.c,v 1.4 2006/11/03 02:52:02 mickey Exp $ */
/* $NetBSD: exception.c,v 1.32 2006/09/04 23:57:52 uwe Exp $ */
/* $NetBSD: syscall.c,v 1.6 2006/03/07 07:21:50 thorpej Exp $ */
@@ -158,12 +158,19 @@ general_exception(struct proc *p, struct trapframe *tf, uint32_t va)
}
switch (expevt) {
+ case EXPEVT_BREAK:
+ if (kdb_trap(EXPEVT_BREAK, 0, tf))
+ return;
+ else
+ goto do_panic;
+ break;
case EXPEVT_TRAPA:
/* Check for ddb request */
tra = _reg_read_4(SH_(TRA));
- if (tra == (_SH_TRA_BREAK << 2)) {
- kdb_trap(expevt, tra, tf);
- } else
+ if (tra == (_SH_TRA_BREAK << 2) &&
+ kdb_trap(expevt, tra, tf))
+ return;
+ else
goto do_panic;
break;
case EXPEVT_TRAPA | EXP_USER: