diff options
author | Yao Qi <yao.qi@linaro.org> | 2016-06-17 10:25:12 +0100 |
---|---|---|
committer | Yao Qi <yao.qi@linaro.org> | 2016-06-17 10:38:19 +0100 |
commit | 8376a3cbf73ca8b623db1daa8f9c49fb83ac54bd (patch) | |
tree | 409e25472c738519ce06636012234776dce252b9 /gdb/gdbserver | |
parent | f79b145de30d6eaafc1f3f5b2aa913519fcd311f (diff) | |
download | gdb-8376a3cbf73ca8b623db1daa8f9c49fb83ac54bd.zip gdb-8376a3cbf73ca8b623db1daa8f9c49fb83ac54bd.tar.gz gdb-8376a3cbf73ca8b623db1daa8f9c49fb83ac54bd.tar.bz2 |
More assert checks on reinsert breakpoint
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.
Diffstat (limited to 'gdb/gdbserver')
-rw-r--r-- | gdb/gdbserver/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/gdbserver/linux-low.c | 6 | ||||
-rw-r--r-- | gdb/gdbserver/mem-break.c | 7 |
3 files changed, 19 insertions, 1 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 70f64ff..c7a9595 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -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, diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index 77c296c..5f025b5 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -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) { diff --git a/gdb/gdbserver/mem-break.c b/gdb/gdbserver/mem-break.c index 3313459..c27e803 100644 --- a/gdb/gdbserver/mem-break.c +++ b/gdb/gdbserver/mem-break.c @@ -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); + } } } |