aboutsummaryrefslogtreecommitdiff
path: root/gdb/python
diff options
context:
space:
mode:
authorJohnson Sun <j3.soon777@gmail.com>2022-10-21 01:49:18 +0800
committerSimon Marchi <simon.marchi@polymtl.ca>2022-11-18 10:50:45 -0500
commit6533cbeeb831224e2d2dd2a7bea54b22b798fa39 (patch)
tree1485eb862e28283864b7d78cf42137d8b9444989 /gdb/python
parent9c48a8e6f43965b8d530159e5dbb2fc9d6083646 (diff)
downloadgdb-6533cbeeb831224e2d2dd2a7bea54b22b798fa39.zip
gdb-6533cbeeb831224e2d2dd2a7bea54b22b798fa39.tar.gz
gdb-6533cbeeb831224e2d2dd2a7bea54b22b798fa39.tar.bz2
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
Diffstat (limited to 'gdb/python')
-rw-r--r--gdb/python/py-finishbreakpoint.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gdb/python/py-finishbreakpoint.c b/gdb/python/py-finishbreakpoint.c
index fdbff5c..5266575 100644
--- a/gdb/python/py-finishbreakpoint.c
+++ b/gdb/python/py-finishbreakpoint.c
@@ -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)
{