mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-21 01:12:32 +08:00
2010-11-29 Phil Muldoon <pmuldoon@redhat.com>
PR python/12199 * python/py-breakpoint.c (bppy_delete_breakpoint): New function. 2010-11-29 Phil Muldoon <pmuldoon@redhat.com> PR python/12199 * gdb.python/py-breakpoint.exp: Test the delete method. 2010-11-29 Phil Muldoon <pmuldoon@redhat.com> PR python/12199 * gdb.texinfo (Breakpoints In Python): Document "delete" method.
This commit is contained in:
parent
950386c651
commit
94b6973efe
@ -1,3 +1,9 @@
|
||||
2010-11-29 Phil Muldoon <pmuldoon@redhat.com>
|
||||
|
||||
PR python/12199
|
||||
|
||||
* python/py-breakpoint.c (bppy_delete_breakpoint): New function.
|
||||
|
||||
2010-11-28 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Fix step_resume_breakpoint unsaved during an infcall.
|
||||
|
@ -1,3 +1,9 @@
|
||||
2010-11-29 Phil Muldoon <pmuldoon@redhat.com>
|
||||
|
||||
PR python/12199
|
||||
|
||||
* gdb.texinfo (Breakpoints In Python): Document "delete" method.
|
||||
|
||||
2010-11-23 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* gdb.texinfo (Top): Check SYSTEM_READLINE.
|
||||
|
@ -22911,6 +22911,12 @@ watchpoint scope, the watchpoint remains valid even if execution of the
|
||||
inferior leaves the scope of that watchpoint.
|
||||
@end defmethod
|
||||
|
||||
@defmethod Breakpoint delete
|
||||
Permanently deletes the @value{GDBN} breakpoint. This also
|
||||
invalidates the Python @code{Breakpoint} object. Any further access
|
||||
to this object's attributes or methods will raise an error.
|
||||
@end defmethod
|
||||
|
||||
@defivar Breakpoint enabled
|
||||
This attribute is @code{True} if the breakpoint is enabled, and
|
||||
@code{False} otherwise. This attribute is writable.
|
||||
|
@ -283,6 +283,23 @@ bppy_set_task (PyObject *self, PyObject *newvalue, void *closure)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Python function which deletes the underlying GDB breakpoint. This
|
||||
triggers the breakpoint_deleted observer which will call
|
||||
gdbpy_breakpoint_deleted; that function cleans up the Python
|
||||
sections. */
|
||||
|
||||
static PyObject *
|
||||
bppy_delete_breakpoint (PyObject *self, PyObject *args)
|
||||
{
|
||||
breakpoint_object *self_bp = (breakpoint_object *) self;
|
||||
|
||||
BPPY_REQUIRE_VALID (self_bp);
|
||||
|
||||
delete_breakpoint (self_bp->bp);
|
||||
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
|
||||
/* Python function to set the ignore count of a breakpoint. */
|
||||
static int
|
||||
@ -843,6 +860,8 @@ static PyMethodDef breakpoint_object_methods[] =
|
||||
{
|
||||
{ "is_valid", bppy_is_valid, METH_NOARGS,
|
||||
"Return true if this breakpoint is valid, false if not." },
|
||||
{ "delete", bppy_delete_breakpoint, METH_NOARGS,
|
||||
"Delete the underlying GDB breakpoint." },
|
||||
{ NULL } /* Sentinel. */
|
||||
};
|
||||
|
||||
|
@ -1,3 +1,9 @@
|
||||
2010-11-29 Phil Muldoon <pmuldoon@redhat.com>
|
||||
|
||||
PR python/12199
|
||||
|
||||
* gdb.python/py-breakpoint.exp: Test the delete method.
|
||||
|
||||
2010-11-28 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Fix step_resume_breakpoint unsaved during an infcall.
|
||||
|
@ -83,6 +83,29 @@ gdb_test "python print blist\[0\].number" "1" "Check breakpoint number"
|
||||
gdb_test "python print blist\[1\].number" "2" "Check breakpoint number"
|
||||
gdb_test "python print blist\[2\].number" "3" "Check breakpoint number"
|
||||
|
||||
# Start with a fresh gdb.
|
||||
clean_restart ${testfile}
|
||||
|
||||
if ![runto_main] then {
|
||||
fail "Cannot run to main."
|
||||
return 0
|
||||
}
|
||||
|
||||
# Test breakpoints are deleted correctly.
|
||||
set deltst_location [gdb_get_line_number "Break at multiply."]
|
||||
set end_location [gdb_get_line_number "Break at end."]
|
||||
gdb_py_test_silent_cmd "python dp1 = gdb.Breakpoint (\"$deltst_location\")" "Set breakpoint" 0
|
||||
gdb_breakpoint [gdb_get_line_number "Break at end."]
|
||||
gdb_py_test_silent_cmd "python del_list = gdb.breakpoints()" "Get Breakpoint List" 0
|
||||
gdb_test "python print len(del_list)" "3" "Number of breakpoints before delete"
|
||||
gdb_continue_to_breakpoint "Break at multiply." ".*/$srcfile:$deltst_location.*"
|
||||
gdb_py_test_silent_cmd "python dp1.delete()" "Delete Breakpoint" 0
|
||||
gdb_test "python print dp1.number" "RuntimeError: Breakpoint 2 is invalid.*" "Check breakpoint invalidated"
|
||||
gdb_py_test_silent_cmd "python del_list = gdb.breakpoints()" "Get Breakpoint List" 0
|
||||
gdb_test "python print len(del_list)" "2" "Number of breakpoints after delete"
|
||||
gdb_continue_to_breakpoint "Break at end." ".*/$srcfile:$end_location.*"
|
||||
|
||||
|
||||
# Start with a fresh gdb.
|
||||
clean_restart ${testfile}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user