Fix deletion of FinishBreakpoints
Currently, FinishBreakpoints are set at the return address of a frame based on the `finish' command, and are meant to be temporary breakpoints. However, they are not being cleaned up after use, as reported in PR python/18655. This was happening because the disposition of the breakpoint was not being set correctly. This commit fixes this issue by correctly setting the disposition in the post-stop hook of the breakpoint. It also adds a test to ensure this feature isn't regressed in the future. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=18655
This commit is contained in:
parent
9c48a8e6f4
commit
6533cbeeb8
4 changed files with 105 additions and 1 deletions
|
@ -145,7 +145,7 @@ bpfinishpy_post_stop_hook (struct gdbpy_breakpoint_object *bp_obj)
|
|||
{
|
||||
/* Can't delete it here, but it will be removed at the next stop. */
|
||||
disable_breakpoint (bp_obj->bp);
|
||||
gdb_assert (bp_obj->bp->disposition == disp_del);
|
||||
bp_obj->bp->disposition = disp_del_at_next_stop;
|
||||
}
|
||||
catch (const gdb_exception &except)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue