diff options
author | Vladimir Prus <vladimir@codesourcery.com> | 2011-04-27 10:17:39 +0000 |
---|---|---|
committer | Vladimir Prus <vladimir@codesourcery.com> | 2011-04-27 10:17:39 +0000 |
commit | 8d3788bd590aa066f4f8383b7f8da20211e4ea9e (patch) | |
tree | 70a6d9187ed169486305055cf406ee9d0a79c08f /gdb/python | |
parent | b4e7b88557a669c6a400014f406fcf5a5abb5290 (diff) | |
download | gdb-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.c | 12 |
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; |