More assert checks on reinsert breakpoint
authorYao Qi <yao.qi@linaro.org>
Fri, 17 Jun 2016 09:25:12 +0000 (10:25 +0100)
committerYao Qi <yao.qi@linaro.org>
Fri, 17 Jun 2016 09:38:19 +0000 (10:38 +0100)
This patch adds more asserts, so the incorrect or sub-optimal
reinsert breakpoints manipulations (from the tests in the following
patches) can trigger them.

gdb/gdbserver:

2016-06-17  Yao Qi  <yao.qi@linaro.org>

* linux-low.c (linux_resume_one_lwp_throw): Assert
has_reinsert_breakpoints returns false.
* mem-break.c (delete_disabled_breakpoints): Assert
bp type isn't reinsert_breakpoint.

gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-low.c
gdb/gdbserver/mem-break.c

index 70f64ff..c7a9595 100644 (file)
@@ -1,5 +1,12 @@
 2016-06-17  Yao Qi  <yao.qi@linaro.org>
 
+       * linux-low.c (linux_resume_one_lwp_throw): Assert
+       has_reinsert_breakpoints returns false.
+       * mem-break.c (delete_disabled_breakpoints): Assert
+       bp type isn't reinsert_breakpoint.
+
+2016-06-17  Yao Qi  <yao.qi@linaro.org>
+
        * linux-low.c (maybe_hw_step): New function.
        (linux_resume_one_lwp_throw): Call maybe_hw_step.
        (finish_step_over): Switch current_thread to lwp temporarily,
index 77c296c..5f025b5 100644 (file)
@@ -4237,6 +4237,12 @@ linux_resume_one_lwp_throw (struct lwp_info *lwp,
 
       step = maybe_hw_step (thread);
     }
+  else
+    {
+      /* If the thread isn't doing step-over, there shouldn't be any
+        reinsert breakpoints.  */
+      gdb_assert (!has_reinsert_breakpoints (proc));
+    }
 
   if (fast_tp_collecting == 1)
     {
index 3313459..c27e803 100644 (file)
@@ -1740,7 +1740,12 @@ delete_disabled_breakpoints (void)
     {
       next = bp->next;
       if (bp->raw->inserted < 0)
-       delete_breakpoint_1 (proc, bp);
+       {
+         /* If reinsert_breakpoints become disabled, that means the
+            manipulations (insertion and removal) of them are wrong.  */
+         gdb_assert (bp->type != reinsert_breakpoint);
+         delete_breakpoint_1 (proc, bp);
+       }
     }
 }