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.
This commit is contained in:
Vladimir Prus 2011-04-27 10:17:39 +00:00
parent b4e7b88557
commit 8d3788bd59
18 changed files with 305 additions and 75 deletions

View file

@ -25191,6 +25191,19 @@ thread group in whose context the library was unloaded. If the field is
absent, it means the library was unloaded in the context of all present
thread groups.
@item =breakpoint-created,bkpt=@{...@}
@itemx =breakpoint-modified,bkpt=@{...@}
@itemx =breakpoint-deleted,bkpt=@{...@}
Reports that a breakpoint was created, modified, or deleted,
respectively. Only user-visible breakpoints are reported to the MI
user.
The @var{bkpt} argument is of the same form as returned by the various
breakpoint commands; @xref{GDB/MI Breakpoint Commands}.
Note that if a breakpoint is emitted in the result record of a
command, then it will not also be emitted in an async record.
@end table
@node GDB/MI Frame Information

View file

@ -159,19 +159,18 @@ thread was resume, and may be RESUME_ALL if all threads are resumed.
The target is about to be proceeded.
@end deftypefun
@deftypefun void breakpoint_created (int @var{bpnum})
A new breakpoint has been created. The argument @var{bpnum} is the
number of the newly-created breakpoint.
@deftypefun void breakpoint_created (struct breakpoint *@var{b})
A new breakpoint @var{b} has been created.
@end deftypefun
@deftypefun void breakpoint_deleted (int @var{bpnum})
A breakpoint has been destroyed. The argument @var{bpnum} is the
number of the newly-destroyed breakpoint.
@deftypefun void breakpoint_deleted (struct breakpoint *@var{b})
A breakpoint has been destroyed. The argument @var{b} is the
pointer to the destroyed breakpoint.
@end deftypefun
@deftypefun void breakpoint_modified (int @var{bpnum})
A breakpoint has been modified in some way. The argument @var{bpnum}
is the number of the modified breakpoint.
@deftypefun void breakpoint_modified (struct breakpoint *@var{b})
A breakpoint has been modified in some way. The argument @var{b}
is the modified breakpoint.
@end deftypefun
@deftypefun void tracepoint_created (int @var{tpnum})