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