This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 02/12] More assert checks on reinsert breakpoint
- From: Yao Qi <qiyaoltc at gmail dot com>
- To: gdb-patches at sourceware dot org
- Date: Thu, 2 Jun 2016 10:30:36 +0100
- Subject: [PATCH 02/12] More assert checks on reinsert breakpoint
- Authentication-results: sourceware.org; auth=none
- References: <1464859846-15619-1-git-send-email-yao dot qi at linaro dot org>
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-05-25 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/linux-low.c | 6 ++++++
gdb/gdbserver/mem-break.c | 7 ++++++-
2 files changed, 12 insertions(+), 1 deletion(-)
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);
+ }
}
}
--
1.9.1