aboutsummaryrefslogtreecommitdiff
path: root/gdb/python
diff options
context:
space:
mode:
authorVladimir Prus <vladimir@codesourcery.com>2011-04-27 10:17:39 +0000
committerVladimir Prus <vladimir@codesourcery.com>2011-04-27 10:17:39 +0000
commit8d3788bd590aa066f4f8383b7f8da20211e4ea9e (patch)
tree70a6d9187ed169486305055cf406ee9d0a79c08f /gdb/python
parentb4e7b88557a669c6a400014f406fcf5a5abb5290 (diff)
downloadgdb-8d3788bd590aa066f4f8383b7f8da20211e4ea9e.zip
gdb-8d3788bd590aa066f4f8383b7f8da20211e4ea9e.tar.gz
gdb-8d3788bd590aa066f4f8383b7f8da20211e4ea9e.tar.bz2
MI breakpoint notifications.
* annotate.c (breakpoint_changed): Adjust parameter type. * breakpoint.c (set_breakpoint_condition): Adjust to change in breakpoint_modified type. (breakpoint_set_commands): Likewise. (do_map_commands_command): Likewise. (bpstat_check_breakpoint_conditions): Notify that breakpoint has changed after bumping hit count. (bpstat_stop_status): Likewise. (print_one_breakpoint_location): Don't wrap in tuple here. (print_one_breakpoint): Always print individual locations. For locations, use unnamed tuple. (disable_breakpoints_in_unloaded_shlib): Notify that breakpoint has changed. (create_catchpoint, create_syscall_event_catchpoint): Call breakpoint_created obsever. (mention): Don't call breakpoint_created observer. (create_breakpoint_sal): Call breakpoint_created observer. (create_breakpoint, watch_command_1): Likewise. (create_ada_exception_breakpoint): Likewise. (delete_breakpoint): Call breakpoint_deleted breakpoint. (locations_are_equal): New. (update_breakpoint_locations): If locations were changed, notify. (set_ignore_count, disable_breakpoint, do_enable_breakpoint): Call breakpoint_modified observer. * mi/mi-cmd-break.c (breakpoint_notify): Adjust. (mi_cmd_break_insert): Don't set observers for modify and delete. * mi/mi-interp.c (mi_suppress_breakpoint_notifications): New. (mi_breakpoint_created, mi_breakpoint_deleted) (mi_breakpoint_modified): New. (mi_interpreter_init): Hook the above. * mi/mi-main.c (mi_cmd_execute): Disable breakpoint notifications while -break-* commands are executing. * mi/mi-main.h (mi_suppress_breakpoint_notifications): New. * mi/mi-out.c (struct ui_out_data): New field original_buffer. (mi_redirect): New. (mi_ui_out_impl): Hook in mi_redirect. (mi_field_skip): True to the name, skip the field, don't output a field with an empty value. * python/py-breakpoint.c (gdbpy_breakpoint_created) (gdbpy_breakpoint_deleted): Adjust. * tui/tui-hooks.c (tui_event_create_breakpoint) (tui_event_delete_breakpoint, tui_event_modify_breakpoint): Adjust.
Diffstat (limited to 'gdb/python')
-rw-r--r--gdb/python/py-breakpoint.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/gdb/python/py-breakpoint.c b/gdb/python/py-breakpoint.c
index 0c21bfc..39578f1 100644
--- a/gdb/python/py-breakpoint.c
+++ b/gdb/python/py-breakpoint.c
@@ -782,16 +782,11 @@ gdbpy_breakpoint_has_py_cond (struct breakpoint_object *bp_obj)
/* Callback that is used when a breakpoint is created. This function
will create a new Python breakpoint object. */
static void
-gdbpy_breakpoint_created (int num)
+gdbpy_breakpoint_created (struct breakpoint *bp)
{
breakpoint_object *newbp;
- struct breakpoint *bp = NULL;
PyGILState_STATE state;
- bp = get_breakpoint (num);
- if (! bp)
- return;
-
if (num < 0 && bppy_pending_object == NULL)
return;
@@ -813,7 +808,7 @@ gdbpy_breakpoint_created (int num)
newbp = PyObject_New (breakpoint_object, &breakpoint_object_type);
if (newbp)
{
- newbp->number = num;
+ newbp->number = bp->number;
newbp->bp = bp;
newbp->bp->py_bp_object = newbp;
Py_INCREF (newbp);
@@ -832,8 +827,9 @@ gdbpy_breakpoint_created (int num)
/* Callback that is used when a breakpoint is deleted. This will
invalidate the corresponding Python object. */
static void
-gdbpy_breakpoint_deleted (int num)
+gdbpy_breakpoint_deleted (struct breakpoint *b)
{
+ int num = b->number;
PyGILState_STATE state;
struct breakpoint *bp = NULL;
breakpoint_object *bp_obj;