Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/ddb Fix a problem where SOFTWARE_SSTEP would skip one in...
details: https://anonhg.NetBSD.org/src/rev/feddba19f76c
branches: trunk
changeset: 472099:feddba19f76c
user: thorpej <thorpej%NetBSD.org@localhost>
date: Wed Apr 21 00:00:06 1999 +0000
description:
Fix a problem where SOFTWARE_SSTEP would skip one instruction each time
on the Alpha.
diffstat:
sys/ddb/db_run.c | 31 +++++++++++++++----------------
1 files changed, 15 insertions(+), 16 deletions(-)
diffs (55 lines):
diff -r 59771b7cfd32 -r feddba19f76c sys/ddb/db_run.c
--- a/sys/ddb/db_run.c Tue Apr 20 23:04:17 1999 +0000
+++ b/sys/ddb/db_run.c Wed Apr 21 00:00:06 1999 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: db_run.c,v 1.18 1999/04/12 20:38:21 pk Exp $ */
+/* $NetBSD: db_run.c,v 1.19 1999/04/21 00:00:06 thorpej Exp $ */
/*
* Mach Operating System
@@ -81,31 +81,30 @@
pc = PC_REGS(regs);
+#ifdef FIXUP_PC_AFTER_BREAK
+ if (*is_breakpoint) {
+ /*
+ * Breakpoint trap. Regardless if we treat this as a
+ * real breakpoint (e.g. software single-step), fix up the PC.
+ */
+ FIXUP_PC_AFTER_BREAK(regs);
+ pc = PC_REGS(regs);
+ }
+#endif
+
#ifdef SOFTWARE_SSTEP
/*
- * If we stopped at one of the single-step breakpoints,
- * say it's not really a breakpoint so that
- * we don't skip over the real instruction.
+ * If we stopped at one of the single-step breakpoints, say it's not
+ * really a breakpoint so that we don't skip over the real instruction.
*/
if (db_taken_bkpt.address == pc || db_not_taken_bkpt.address == pc)
*is_breakpoint = FALSE;
-#endif
+#endif /* SOFTWARE_SSTEP */
db_clear_single_step(regs);
db_clear_breakpoints();
db_clear_watchpoints();
-#ifdef FIXUP_PC_AFTER_BREAK
- if (*is_breakpoint) {
- /*
- * Breakpoint trap. Fix up the PC if the
- * machine requires it.
- */
- FIXUP_PC_AFTER_BREAK(regs);
- pc = PC_REGS(regs);
- }
-#endif
-
/*
* Now check for a breakpoint at this address.
*/
Home |
Main Index |
Thread Index |
Old Index