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.
This commit is contained in:
Yao Qi 2016-06-17 10:25:12 +01:00
parent f79b145de3
commit 8376a3cbf7
3 changed files with 19 additions and 1 deletions

View File

@ -1,3 +1,10 @@
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.

View 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)
{

View 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);
}
}
}