Re: [PATCH v2] gdb: Modify the output of "info breakpoints" and "delete breakpoints"

Bruno Larsen via Gdb-patches
2022-05-19T13:08:50Z

On 5/19/22 06:16, Tiezhu Yang wrote:
> The output of "info breakpoints" includes breakpoint, watchpoint,
> tracepoint and catchpoint, after delete all breakpoints, it should
> show tracepoint and catchpoint in the output of "info breakpoints"
> to report empty list.
>
> It should also change the output of "delete breakpoints" to make it
> clear that watchpoints, tracepoints and catchpoints are also being
> deleted. This is suggested by Bruno Larsen, thank you.
>
> $ make check-gdb TESTS="gdb.base/access-mem-running.exp"
> $ gdb/gdb gdb/testsuite/outputs/gdb.base/access-mem-running/access-mem-running
> [...]
> (gdb) break main
> Breakpoint 1 at 0x12000073c: file /home/loongson/gdb.git/gdb/testsuite/gdb.base/access-mem-running.c, line 32.
> (gdb) watch global_counter
> Hardware watchpoint 2: global_counter
> (gdb) trace maybe_stop_here
> Tracepoint 3 at 0x12000071c: file /home/loongson/gdb.git/gdb/testsuite/gdb.base/access-mem-running.c, line 27.
> (gdb) catch fork
> Catchpoint 4 (fork)
> (gdb) info breakpoints
> Num Type Disp Enb Address What
> 1 breakpoint keep y 0x000000012000073c in main at /home/loongson/gdb.git/gdb/testsuite/gdb.base/access-mem-running.c:32
> 2 hw watchpoint keep y global_counter
> 3 tracepoint keep y 0x000000012000071c in maybe_stop_here at /home/loongson/gdb.git/gdb/testsuite/gdb.base/access-mem-running.c:27
> not installed on target
> 4 catchpoint keep y fork
>
> Without this patch:
>
> (gdb) delete breakpoints
> Delete all breakpoints? (y or n) y
> (gdb) info breakpoints
> No breakpoints or watchpoints.
> (gdb) info breakpoints 3
> No breakpoint or watchpoint matching '3'.
>
> With this patch:
>
> (gdb) delete breakpoints
> Delete all breakpoints, watchpoints, tracepoints and catchpoints? (y or n) y
> (gdb) info breakpoints
> No breakpoints, watchpoints, tracepoints or catchpoints.
> (gdb) info breakpoints 3
> No breakpoint, watchpoint, tracepoint or catchpoint matching '3'.
>

Hey Tiezhu,

Thanks for this change, I'm fine with this patch. However, I can't approve patches to be pushed. Let's hope a maintainer shows up soon :-)

Cheers!
Bruno Larsen
> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
> ---
> gdb/breakpoint.c | 16 ++++++++--------
> gdb/doc/gdb.texinfo | 17 +++++++++--------
> gdb/ppc-linux-nat.c | 2 +-
> gdb/testsuite/gdb.arch/i386-dr3-watch.exp | 2 +-
> gdb/testsuite/gdb.base/annota-input-while-running.exp | 2 +-
> gdb/testsuite/gdb.base/break-unload-file.exp | 4 ++--
> gdb/testsuite/gdb.base/break.exp | 12 ++++++------
> gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp | 2 +-
> .../gdb.base/continue-after-aborted-step-over.exp | 2 +-
> gdb/testsuite/gdb.base/default.exp | 2 +-
> gdb/testsuite/gdb.base/del.exp | 4 ++--
> gdb/testsuite/gdb.base/ena-dis-br.exp | 2 +-
> gdb/testsuite/gdb.base/foll-fork.exp | 6 +++---
> gdb/testsuite/gdb.base/hbreak-unmapped.exp | 4 ++--
> gdb/testsuite/gdb.base/hbreak2.exp | 2 +-
> gdb/testsuite/gdb.base/help.exp | 2 +-
> gdb/testsuite/gdb.base/new-ui.exp | 8 ++++----
> gdb/testsuite/gdb.base/save-bp.exp | 8 ++++----
> gdb/testsuite/gdb.base/sepdebug.exp | 2 +-
> gdb/testsuite/gdb.base/server-del-break.exp | 5 +++--
> gdb/testsuite/gdb.cp/annota2.exp | 4 ++--
> gdb/testsuite/gdb.cp/annota3.exp | 4 ++--
> gdb/testsuite/gdb.cp/ovldbreak.exp | 10 +++++-----
> gdb/testsuite/gdb.cp/save-bp-qualified.exp | 4 ++--
> gdb/testsuite/gdb.dwarf2/dw2-inline-header-1.exp | 4 ++--
> gdb/testsuite/gdb.dwarf2/dw2-inline-header-2.exp | 8 ++++----
> gdb/testsuite/gdb.dwarf2/dw2-inline-header-3.exp | 4 ++--
> gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.exp | 4 ++--
> gdb/testsuite/gdb.guile/scm-breakpoint.exp | 6 +++---
> gdb/testsuite/gdb.linespec/cpexplicit.exp | 4 ++--
> gdb/testsuite/gdb.linespec/explicit.exp | 4 ++--
> gdb/testsuite/gdb.mi/mi-return.exp | 2 +-
> gdb/testsuite/gdb.opt/inline-small-func.exp | 4 ++--
> gdb/testsuite/gdb.python/py-breakpoint.exp | 8 ++++----
> gdb/testsuite/gdb.reverse/ppc_record_test_isa_3_1.exp | 2 +-
> .../gdb.threads/continue-pending-after-query.exp | 2 +-
> gdb/testsuite/gdb.threads/continue-pending-status.exp | 7 ++++---
> gdb/testsuite/gdb.threads/thread_check.exp | 4 ++--
> gdb/testsuite/lib/gdb.exp | 6 +++---
> gdb/testsuite/lib/mi-support.exp | 10 +++++-----
> gdbserver/mem-break.cc | 7 ++++---
> gdbserver/mem-break.h | 7 ++++---
> 42 files changed, 112 insertions(+), 107 deletions(-)
>
> diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
> index 9abc144..52769e0 100644
> --- a/gdb/breakpoint.c
> +++ b/gdb/breakpoint.c
> @@ -6741,9 +6741,9 @@ breakpoint_1 (const char *bp_num_list, bool show_internal,
> if (!filter)
> {
> if (bp_num_list == NULL || *bp_num_list == '\0')
> - uiout->message ("No breakpoints or watchpoints.\n");
> + uiout->message ("No breakpoints, watchpoints, tracepoints or catchpoints.\n");
> else
> - uiout->message ("No breakpoint or watchpoint matching '%s'.\n",
> + uiout->message ("No breakpoint, watchpoint, tracepoint or catchpoint matching '%s'.\n",
> bp_num_list);
> }
> }
> @@ -12338,8 +12338,8 @@ delete_command (const char *arg, int from_tty)
> {
> int breaks_to_delete = 0;
>
> - /* Delete all breakpoints if no argument. Do not delete
> - internal breakpoints, these have to be deleted with an
> + /* Delete all breakpoints, watchpoints, tracepoints and catchpoints if no argument.
> + Do not delete internal breakpoints, these have to be deleted with an
> explicit breakpoint number argument. */
> for (breakpoint *b : all_breakpoints ())
> if (user_breakpoint_p (b))
> @@ -12350,7 +12350,7 @@ delete_command (const char *arg, int from_tty)
>
> /* Ask user only if there are some breakpoints to delete. */
> if (!from_tty
> - || (breaks_to_delete && query (_("Delete all breakpoints? "))))
> + || (breaks_to_delete && query (_("Delete all breakpoints, watchpoints, tracepoints and catchpoints? "))))
> for (breakpoint *b : all_breakpoints_safe ())
> if (user_breakpoint_p (b))
> delete_breakpoint (b);
> @@ -13843,7 +13843,7 @@ delete_trace_command (const char *arg, int from_tty)
> {
> int breaks_to_delete = 0;
>
> - /* Delete all breakpoints if no argument.
> + /* Delete all tracepoints if no argument.
> Do not delete internal or call-dummy breakpoints, these
> have to be deleted with an explicit breakpoint number
> argument. */
> @@ -14448,7 +14448,7 @@ This command may be abbreviated \"disable\"."),
> Delete all or some breakpoints.\n\
> Usage: delete [BREAKPOINTNUM]...\n\
> Arguments are breakpoint numbers with spaces in between.\n\
> -To delete all breakpoints, give no argument.\n\
> +To delete all breakpoints, watchpoints, tracepoints and catchpoints, give no argument.\n\
> \n\
> Also a prefix command for deletion of other GDB objects."),
> &deletelist, 1, &cmdlist);
> @@ -14459,7 +14459,7 @@ Also a prefix command for deletion of other GDB objects."),
> Delete all or some breakpoints or auto-display expressions.\n\
> Usage: delete breakpoints [BREAKPOINTNUM]...\n\
> Arguments are breakpoint numbers with spaces in between.\n\
> -To delete all breakpoints, give no argument.\n\
> +To delete all breakpoints, watchpoints, tracepoints and catchpoints, give no argument.\n\
> This command may be abbreviated \"delete\"."),
> &deletelist);
>
> diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
> index 8cf9786..2c89815 100644
> --- a/gdb/doc/gdb.texinfo
> +++ b/gdb/doc/gdb.texinfo
> @@ -4545,15 +4545,15 @@ optionally be surrounded by spaces.
> @cindex @code{$_} and @code{info breakpoints}
> @item info breakpoints @r{[}@var{list}@dots{}@r{]}
> @itemx info break @r{[}@var{list}@dots{}@r{]}
> -Print a table of all breakpoints, watchpoints, and catchpoints set and
> -not deleted. Optional argument @var{n} means print information only
> -about the specified breakpoint(s) (or watchpoint(s) or catchpoint(s)).
> +Print a table of all breakpoints, watchpoints, tracepoints and catchpoints set
> +and not deleted. Optional argument @var{n} means print information only
> +about the specified breakpoint(s) (or watchpoint(s) or tracepoint(s) or catchpoint(s)).
> For each breakpoint, following columns are printed:
>
> @table @emph
> @item Breakpoint Numbers
> @item Type
> -Breakpoint, watchpoint, or catchpoint.
> +Breakpoint, watchpoint, tracepoint or catchpoint.
> @item Disposition
> Whether the breakpoint is marked to be disabled or deleted when hit.
> @item Enabled or Disabled
> @@ -5462,10 +5462,11 @@ Delete any breakpoints set at or within the code of the specified
> @kindex delete
> @kindex d @r{(@code{delete})}
> @item delete @r{[}breakpoints@r{]} @r{[}@var{list}@dots{}@r{]}
> -Delete the breakpoints, watchpoints, or catchpoints of the breakpoint
> -list specified as argument. If no argument is specified, delete all
> -breakpoints (@value{GDBN} asks confirmation, unless you have @code{set
> -confirm off}). You can abbreviate this command as @code{d}.
> +Delete all breakpoints, watchpoints, tracepoints and catchpoints
> +of the breakpoint list specified as argument. If no argument is specified,
> +delete all breakpoints, watchpoints, tracepoints and catchpoints
> +(@value{GDBN} asks confirmation, unless you have @code{set confirm off}).
> +You can abbreviate this command as @code{d}.
> @end table
>
> @node Disabling
> diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c
> index 588dd7d..7414d7c 100644
> --- a/gdb/ppc-linux-nat.c
> +++ b/gdb/ppc-linux-nat.c
> @@ -2360,7 +2360,7 @@ ppc_linux_nat_target::can_use_watchpoint_cond_accel (void)
>
> auto process_it = m_process_info.find (inferior_ptid.pid ());
>
> - /* No breakpoints or watchpoints have been requested for this process,
> + /* No breakpoints, watchpoints, tracepoints or catchpoints have been requested for this process,
> we have at least one free DVC register. */
> if (process_it == m_process_info.end ())
> return true;
> diff --git a/gdb/testsuite/gdb.arch/i386-dr3-watch.exp b/gdb/testsuite/gdb.arch/i386-dr3-watch.exp
> index bab118b..575e900 100644
> --- a/gdb/testsuite/gdb.arch/i386-dr3-watch.exp
> +++ b/gdb/testsuite/gdb.arch/i386-dr3-watch.exp
> @@ -78,7 +78,7 @@ gdb_test_multiple "watch gap1" "$test" {
> gdb_test "delete" \
> "" \
> "delete all watchpoints" \
> - {Delete all breakpoints\? \(y or n\) $} \
> + {Delete all breakpoints, watchpoints, tracepoints and catchpoints\? \(y or n\) $} \
> "y"
>
> # If debug registers were left occupied by mistake, we'll fail to set
> diff --git a/gdb/testsuite/gdb.base/annota-input-while-running.exp b/gdb/testsuite/gdb.base/annota-input-while-running.exp
> index 2b4c5e1..8443071 100644
> --- a/gdb/testsuite/gdb.base/annota-input-while-running.exp
> +++ b/gdb/testsuite/gdb.base/annota-input-while-running.exp
> @@ -57,7 +57,7 @@ gdb_annota_test "set annotate 2" ".*" "annotation set at level 2"
>
> set test "delete breakpoints"
> gdb_test_multiple "delete" $test {
> - -re "Delete all breakpoints. .y or n." {
> + -re "Delete all breakpoints, watchpoints, tracepoints and catchpoints. .y or n." {
> send_gdb "y\n"
> exp_continue
> }
> diff --git a/gdb/testsuite/gdb.base/break-unload-file.exp b/gdb/testsuite/gdb.base/break-unload-file.exp
> index ed14772..596736c 100644
> --- a/gdb/testsuite/gdb.base/break-unload-file.exp
> +++ b/gdb/testsuite/gdb.base/break-unload-file.exp
> @@ -121,8 +121,8 @@ proc test_break { initial_load always_inserted break_command } {
> # re-insert, GDB would fill the shadow buffer with a
> # breakpoint instruction). Avoid delete_breakpoints as that
> # doesn't record a pass/fail.
> - gdb_test "delete" "" "delete all breakpoints" \
> - "Delete all breakpoints.*y or n.*$" "y"
> + gdb_test "delete" "" "delete all breakpoints, watchpoints, tracepoints and catchpoints" \
> + "Delete all breakpoints, watchpoints, tracepoints and catchpoints.*y or n.*$" "y"
>
> # Re-add symbols back.
> set test "file \$binfile"
> diff --git a/gdb/testsuite/gdb.base/break.exp b/gdb/testsuite/gdb.base/break.exp
> index 2c939ad..f89923e 100644
> --- a/gdb/testsuite/gdb.base/break.exp
> +++ b/gdb/testsuite/gdb.base/break.exp
> @@ -31,17 +31,17 @@ set srcfile1 break1.c
>
> send_gdb "delete breakpoints\n"
> gdb_expect {
> - -re "Delete all breakpoints.*$" {
> + -re "Delete all breakpoints, watchpoints, tracepoints and catchpoints.*$" {
> send_gdb "y\n"
> gdb_expect {
> -re "$gdb_prompt $" {
> - fail "delete all breakpoints when none (unexpected prompt)"
> + fail "delete all breakpoints, watchpoints, tracepoints and catchpoints when none (unexpected prompt)"
> }
> - timeout { fail "delete all breakpoints when none (timeout after unexpected prompt)" }
> + timeout { fail "delete all breakpoints, watchpoints, tracepoints and catchpoints when none (timeout after unexpected prompt)" }
> }
> }
> - -re ".*$gdb_prompt $" { pass "delete all breakpoints when none" }
> - timeout { fail "delete all breakpoints when none (timeout)" }
> + -re ".*$gdb_prompt $" { pass "delete all breakpoints, watchpoints, tracepoints and catchpoints when none" }
> + timeout { fail "delete all breakpoints, watchpoints, tracepoints and catchpoints when none (timeout)" }
> }
>
> #
> @@ -418,7 +418,7 @@ gdb_test "continue" \
> "continue to breakpoint at }"
>
> #
> -# delete all breakpoints so we can start over, course this can be a test too
> +# delete all breakpoints, watchpoints, tracepoints and catchpoints so we can start over, course this can be a test too
> #
> delete_breakpoints
>
> diff --git a/gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp b/gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp
> index a3b654b..11c7e03 100644
> --- a/gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp
> +++ b/gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp
> @@ -237,7 +237,7 @@ proc test_single_step { always_inserted auto_hw } {
> }
>
> gdb_test "maint info breakpoints 0" \
> - "No breakpoint or watchpoint matching '0'\." \
> + "No breakpoint, watchpoint, tracepoint or catchpoint matching '0'\." \
> "single-step breakpoint is not left behind"
>
> # Confirm the thread really advanced.
> diff --git a/gdb/testsuite/gdb.base/continue-after-aborted-step-over.exp b/gdb/testsuite/gdb.base/continue-after-aborted-step-over.exp
> index ee59ad5..30836f5 100644
> --- a/gdb/testsuite/gdb.base/continue-after-aborted-step-over.exp
> +++ b/gdb/testsuite/gdb.base/continue-after-aborted-step-over.exp
> @@ -27,7 +27,7 @@
> #
> # Command aborted.
> # delete breakpoints
> -# Delete all breakpoints? (y or n) y
> +# Delete all breakpoints, watchpoints, tracepoints and catchpoints? (y or n) y
> # (gdb) b function
> # Breakpoint 3 at 0x40048b: file test.c, line 33.
> # continue
> diff --git a/gdb/testsuite/gdb.base/default.exp b/gdb/testsuite/gdb.base/default.exp
> index 23379f6..37386de 100644
> --- a/gdb/testsuite/gdb.base/default.exp
> +++ b/gdb/testsuite/gdb.base/default.exp
> @@ -267,7 +267,7 @@ gdb_test "info args" "No frame selected."
> #test info bogus-gdb-command
> gdb_test "info bogus-gdb-command" "Undefined info command: \"bogus-gdb-command\". Try \"help info\".*"
> #test info breakpoints
> -gdb_test "info breakpoints" "No breakpoints or watchpoints."
> +gdb_test "info breakpoints" "No breakpoints, watchpoints, tracepoints or catchpoints."
> #test info copying
> # FIXME -- doesn't work worth a shit
> #send_gdb "info copying"
> diff --git a/gdb/testsuite/gdb.base/del.exp b/gdb/testsuite/gdb.base/del.exp
> index 29ab5f5..1fab0c8 100644
> --- a/gdb/testsuite/gdb.base/del.exp
> +++ b/gdb/testsuite/gdb.base/del.exp
> @@ -35,7 +35,7 @@ proc test_delete_alias { alias } {
> "remove all breakpoints"
>
> gdb_test "info break" \
> - "No breakpoints or watchpoints." \
> + "No breakpoints, watchpoints, tracepoints or catchpoints." \
> "info break after clearing breakpoints"
>
>
> @@ -50,7 +50,7 @@ proc test_delete_alias { alias } {
> "Remove last breakpoint"
>
> gdb_test "info break" \
> - "No breakpoints or watchpoints." \
> + "No breakpoints, watchpoints, tracepoints or catchpoints." \
> "info break after removing break on main"
> }
>
> diff --git a/gdb/testsuite/gdb.base/ena-dis-br.exp b/gdb/testsuite/gdb.base/ena-dis-br.exp
> index 24925cf..9b90bc3 100644
> --- a/gdb/testsuite/gdb.base/ena-dis-br.exp
> +++ b/gdb/testsuite/gdb.base/ena-dis-br.exp
> @@ -133,7 +133,7 @@ gdb_test "continue" \
> "continue to auto-deleted break marker3"
>
> gdb_test "info break $bp" \
> - ".*No breakpoint or watchpoint matching.*" \
> + ".*No breakpoint, watchpoint, tracepoint or catchpoint matching.*" \
> "info auto-deleted break marker3"
>
> # Verify that we can set a breakpoint and manually disable it (we've
> diff --git a/gdb/testsuite/gdb.base/foll-fork.exp b/gdb/testsuite/gdb.base/foll-fork.exp
> index 0ab2290..3ac94a9 100644
> --- a/gdb/testsuite/gdb.base/foll-fork.exp
> +++ b/gdb/testsuite/gdb.base/foll-fork.exp
> @@ -262,7 +262,7 @@ proc_with_prefix catch_fork_child_follow {} {
> gdb_test "delete breakpoints" \
> "" \
> "set follow-fork child, cleanup" \
> - "Delete all breakpoints. \\(y or n\\) $" \
> + "Delete all breakpoints, watchpoints, tracepoints and catchpoints. \\(y or n\\) $" \
> "y"
> }
>
> @@ -289,7 +289,7 @@ proc_with_prefix catch_fork_unpatch_child {} {
> "Catchpoint \[0-9\]* \\(forked process \[0-9\]*\\),.*" \
> "unpatch child, catch fork"
>
> - # Delete all breakpoints and catchpoints.
> + # Delete all breakpoints, watchpoints, tracepoints and catchpoints.
> delete_breakpoints
>
> # Force $srcfile as the current GDB source can be in glibc sourcetree.
> @@ -366,7 +366,7 @@ proc_with_prefix tcatch_fork_parent_follow {} {
> gdb_test "delete breakpoints" \
> "" \
> "set follow-fork parent, cleanup" \
> - "Delete all breakpoints. \\(y or n\\) $" \
> + "Delete all breakpoints, watchpoints, tracepoints and catchpoints. \\(y or n\\) $" \
> "y"
> }
>
> diff --git a/gdb/testsuite/gdb.base/hbreak-unmapped.exp b/gdb/testsuite/gdb.base/hbreak-unmapped.exp
> index 7e6d1cb..fc93ce5 100644
> --- a/gdb/testsuite/gdb.base/hbreak-unmapped.exp
> +++ b/gdb/testsuite/gdb.base/hbreak-unmapped.exp
> @@ -73,5 +73,5 @@ gdb_test "info break" "hw breakpoint.*y.*0x0\+\[ \t\]\+" \
> gdb_test_no_output "delete \$bpnum" "" "delete" \
> "delete hw breakpoint"
>
> -gdb_test "info break" "No breakpoints or watchpoints\." \
> - "info break shows no breakpoints"
> +gdb_test "info break" "No breakpoints, watchpoints, tracepoints or catchpoints\." \
> + "info break shows no breakpoints, watchpoints, tracepoints or catchpoints"
> diff --git a/gdb/testsuite/gdb.base/hbreak2.exp b/gdb/testsuite/gdb.base/hbreak2.exp
> index aecf613..3b34fef 100644
> --- a/gdb/testsuite/gdb.base/hbreak2.exp
> +++ b/gdb/testsuite/gdb.base/hbreak2.exp
> @@ -228,7 +228,7 @@ gdb_test "continue" \
> "continue to hardware breakpoint at }"
>
> #
> -# Delete all breakpoints so we can start over, course this can be a test too.
> +# Delete all breakpoints, watchpoints, tracepoints and catchpoints so we can start over, course this can be a test too.
> #
> delete_breakpoints
>
> diff --git a/gdb/testsuite/gdb.base/help.exp b/gdb/testsuite/gdb.base/help.exp
> index 74da29e..dfb1e3d 100644
> --- a/gdb/testsuite/gdb.base/help.exp
> +++ b/gdb/testsuite/gdb.base/help.exp
> @@ -89,7 +89,7 @@ set expected_help_delete {
> "Delete all or some breakpoints\.\[\r\n\]+"
> "Usage: delete \\\[BREAKPOINTNUM\\\]...\[\r\n\]+"
> "Arguments are breakpoint numbers with spaces in between\.\[\r\n\]+"
> - "To delete all breakpoints, give no argument\.\[\r\n\]+"
> + "To delete all breakpoints, watchpoints, tracepoints and catchpoints, give no argument\.\[\r\n\]+"
> "Also a prefix command for deletion of other GDB objects\.\[\r\n\]+"
> }
> test_prefix_command_help {"d" "delete"} $expected_help_delete "help delete \"d\" abbreviation"
> diff --git a/gdb/testsuite/gdb.base/new-ui.exp b/gdb/testsuite/gdb.base/new-ui.exp
> index 2f019f6..32d902b 100644
> --- a/gdb/testsuite/gdb.base/new-ui.exp
> +++ b/gdb/testsuite/gdb.base/new-ui.exp
> @@ -130,17 +130,17 @@ proc_with_prefix do_test {} {
> # Verify that we get proper queries on the main UI, but that they are
> # auto-answered on secondary UIs.
> with_spawn_id $gdb_main_spawn_id {
> - gdb_test "delete" "" "delete all breakpoint on main console" \
> - "Delete all breakpoints. .y or n. $" "n"
> + gdb_test "delete" "" "delete all breakpoints, watchpoints, tracepoints and catchpoints on main console" \
> + "Delete all breakpoints, watchpoints, tracepoints and catchpoints. .y or n. $" "n"
> }
> with_spawn_id $extra_spawn_id {
> # Check output in two stages in order to override
> # gdb_test_multiple's internal "got interactive prompt" fail
> # that would otherwise match if the expect buffer happens to
> # fill with partial output that ends in "(y or n) ".
> - set test "delete all breakpoints on extra console"
> + set test "delete all breakpoints, watchpoints, tracepoints and catchpoints on extra console"
> gdb_test_multiple "delete" $test {
> - -re "Delete all breakpoints. .y or n. " {
> + -re "Delete all breakpoints, watchpoints, tracepoints and catchpoints. .y or n. " {
> gdb_test "" \
> ".answered Y; input not from terminal." \
> $test
> diff --git a/gdb/testsuite/gdb.base/save-bp.exp b/gdb/testsuite/gdb.base/save-bp.exp
> index 39bd692..d2649d8 100644
> --- a/gdb/testsuite/gdb.base/save-bp.exp
> +++ b/gdb/testsuite/gdb.base/save-bp.exp
> @@ -22,8 +22,8 @@ if { [prepare_for_testing "failed to prepare" ${testfile} $srcfile] } {
> if ![runto_main] {
> return -1
> }
> -# Delete all breakpoints so that the "runto_main" breakpoint above
> -# does not interfere with our testing.
> +# Delete all breakpoints, watchpoints, tracepoints and catchpoints so that
> +# the "runto_main" breakpoint above does not interfere with our testing.
> delete_breakpoints
>
> # Insert a bunch of breakpoints... The goal is to create breakpoints
> @@ -64,8 +64,8 @@ clean_restart $testfile
> if ![runto_main] {
> return -1
> }
> -# Delete all breakpoints so that the "runto_main" breakpoint above
> -# does not interfere with our testing.
> +# Delete all breakpoints, watchpoints, tracepoints and catchpoints so that
> +# the "runto_main" breakpoint above does not interfere with our testing.
> delete_breakpoints
>
> # ... and restore the breakpoints.
> diff --git a/gdb/testsuite/gdb.base/sepdebug.exp b/gdb/testsuite/gdb.base/sepdebug.exp
> index 20a7f34..5ee9e6f 100644
> --- a/gdb/testsuite/gdb.base/sepdebug.exp
> +++ b/gdb/testsuite/gdb.base/sepdebug.exp
> @@ -219,7 +219,7 @@ gdb_test "step" \
> "step onto breakpoint"
>
> #
> -# delete all breakpoints so we can start over, course this can be a test too
> +# delete all breakpoints, watchpoints, tracepoints and catchpoints so we can start over, course this can be a test too
> #
> delete_breakpoints
>
> diff --git a/gdb/testsuite/gdb.base/server-del-break.exp b/gdb/testsuite/gdb.base/server-del-break.exp
> index 9a8b6f8..2200702 100644
> --- a/gdb/testsuite/gdb.base/server-del-break.exp
> +++ b/gdb/testsuite/gdb.base/server-del-break.exp
> @@ -29,10 +29,11 @@ gdb_test "break -q main" \
>
> # Try deleting all breakpoints, using the "server" command prefix.
> # Prefixing the "delete breakpoints" with "server" should turn
> -# the confirmation request ("Delete all breakpoints? (y or n)")
> +# the confirmation request
> +# ("Delete all breakpoints, watchpoints, tracepoints and catchpoints? (y or n)")
> # off, hence we expect the operation to be executed without output.
> gdb_test_no_output "server delete breakpoints"
>
> # Double-check that the all breakpoints were in fact deleted.
> gdb_test "info break" \
> - "No breakpoints or watchpoints."
> + "No breakpoints, watchpoints, tracepoints or catchpoints."
> diff --git a/gdb/testsuite/gdb.cp/annota2.exp b/gdb/testsuite/gdb.cp/annota2.exp
> index 681235b..cbfc30d 100644
> --- a/gdb/testsuite/gdb.cp/annota2.exp
> +++ b/gdb/testsuite/gdb.cp/annota2.exp
> @@ -149,11 +149,11 @@ gdb_test_multiple "continue" "continue until exit" {
> }
>
> #
> -# delete all breakpoints
> +# delete all breakpoints, watchpoints, tracepoints and catchpoints
> #
> send_gdb "delete\n"
> gdb_expect {
> - -re ".*Delete all breakpoints. \\(y or n\\) \r\n\032\032query.*$" {
> + -re ".*Delete all breakpoints, watchpoints, tracepoints and catchpoints. \\(y or n\\) \r\n\032\032query.*$" {
> send_gdb "y\n"
> gdb_expect {
> -re "\r\n\032\032post-query\r\n${breakpoints_invalid}$gdb_prompt$" { pass "delete bps" }
> diff --git a/gdb/testsuite/gdb.cp/annota3.exp b/gdb/testsuite/gdb.cp/annota3.exp
> index 0914b7c..8e45f6c 100644
> --- a/gdb/testsuite/gdb.cp/annota3.exp
> +++ b/gdb/testsuite/gdb.cp/annota3.exp
> @@ -107,11 +107,11 @@ gdb_expect_list "continue to exit" "$gdb_prompt$" [concat {
> }]
>
> #
> -# delete all breakpoints
> +# delete all breakpoints, watchpoints, tracepoints and catchpoints
> #
> send_gdb "delete\n"
> gdb_expect {
> - -re ".*Delete all breakpoints. \\(y or n\\) \r\n\032\032query.*$" {
> + -re ".*Delete all breakpoints, watchpoints, tracepoints and catchpoints. \\(y or n\\) \r\n\032\032query.*$" {
> send_gdb "y\n"
> gdb_expect {
> -re "\r\n\032\032post-query\r\n$gdb_prompt$" { pass "delete bps" }
> diff --git a/gdb/testsuite/gdb.cp/ovldbreak.exp b/gdb/testsuite/gdb.cp/ovldbreak.exp
> index 681edf2..500e505 100644
> --- a/gdb/testsuite/gdb.cp/ovldbreak.exp
> +++ b/gdb/testsuite/gdb.cp/ovldbreak.exp
> @@ -261,23 +261,23 @@ gdb_test "info break" $bptable "breakpoint info (after cancel)"
>
> send_gdb "delete breakpoints\n"
> gdb_expect {
> - -re "Delete all breakpoints.* $" {
> + -re "Delete all breakpoints, watchpoints, tracepoints and catchpoints.* $" {
> send_gdb "y\n"
> gdb_expect {
> -re ".*$gdb_prompt $" {
> - pass "delete all breakpoints"
> + pass "delete all breakpoints, watchpoints, tracepoints and catchpoints"
> }
> timeout {
> - fail "delete all breakpoints (timeout)"
> + fail "delete all breakpoints, watchpoints, tracepoints and catchpoints (timeout)"
> }
> }
> }
> timeout {
> - fail "delete all breakpoints (timeout)"
> + fail "delete all breakpoints, watchpoints, tracepoints and catchpoints (timeout)"
> }
> }
>
> -gdb_test "info breakpoints" "No breakpoints or watchpoints." "breakpoint info (after delete)"
> +gdb_test "info breakpoints" "No breakpoints, watchpoints, tracepoints or catchpoints." "breakpoint info (after delete)"
>
>
>
> diff --git a/gdb/testsuite/gdb.cp/save-bp-qualified.exp b/gdb/testsuite/gdb.cp/save-bp-qualified.exp
> index 857e9b8..ff8915f 100644
> --- a/gdb/testsuite/gdb.cp/save-bp-qualified.exp
> +++ b/gdb/testsuite/gdb.cp/save-bp-qualified.exp
> @@ -29,8 +29,8 @@ proc restart {} {
> if ![runto_main] {
> return 0
> }
> - # Delete all breakpoints so that the "runto_main" breakpoint above
> - # does not interfere with our testing.
> + # Delete all breakpoints, watchpoints, tracepoints and catchpoints so that
> + # the "runto_main" breakpoint above does not interfere with our testing.
> delete_breakpoints
>
> return 1
> diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-header-1.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-header-1.exp
> index 19f06ad..7b5c0a6 100644
> --- a/gdb/testsuite/gdb.dwarf2/dw2-inline-header-1.exp
> +++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-header-1.exp
> @@ -167,8 +167,8 @@ proc do_test { start_label func_name tag } {
> return -1
> }
>
> - # Delete all breakpoints so that the output of "info breakpoints"
> - # below will only contain a single breakpoint.
> + # Delete all breakpoints, watchpoints, tracepoints and catchpoints so that
> + # the output of "info breakpoints" below will only contain a single breakpoint.
> delete_breakpoints
>
> # Place a breakpoint within the function in the header file.
> diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-header-2.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-header-2.exp
> index 198f355..6e78af0 100644
> --- a/gdb/testsuite/gdb.dwarf2/dw2-inline-header-2.exp
> +++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-header-2.exp
> @@ -155,8 +155,8 @@ if ![runto_main] {
> return -1
> }
>
> -# Delete all breakpoints so that the output of "info breakpoints"
> -# below will only contain a single breakpoint.
> +# Delete all breakpoints, watchpoints, tracepoints and catchpoints so that
> +# the output of "info breakpoints" below will only contain a single breakpoint.
> delete_breakpoints
>
> # Place a breakpoint within the function in the header file.
> @@ -169,8 +169,8 @@ gdb_test "info breakpoints" \
> ".* in callee at \[^\r\n\]+${srcfile4}:22\\y.*" \
> "check for breakpoint at ${srcfile4}"
>
> -# Delete all breakpoints so that the output of "info breakpoints"
> -# below will only contain a single breakpoint.
> +# Delete all breakpoints, watchpoints, tracepoints and catchpoints so that
> +# the output of "info breakpoints" below will only contain a single breakpoint.
> delete_breakpoints
>
> # Place a breakpoint within the function in the header file.
> diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-header-3.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-header-3.exp
> index 68261aa..7ecb3e0 100644
> --- a/gdb/testsuite/gdb.dwarf2/dw2-inline-header-3.exp
> +++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-header-3.exp
> @@ -144,8 +144,8 @@ if ![runto_main] {
> return -1
> }
>
> -# Delete all breakpoints so that the output of "info breakpoints"
> -# below will only contain a single breakpoint.
> +# Delete all breakpoints, watchpoints, tracepoints and catchpoints so that
> +# the output of "info breakpoints" below will only contain a single breakpoint.
> delete_breakpoints
>
> # Place a breakpoint within the function in the header file.
> diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.exp
> index 05286ad..965417d 100644
> --- a/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.exp
> +++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.exp
> @@ -129,8 +129,8 @@ if ![runto_main] {
> return -1
> }
>
> -# Delete all breakpoints so that the output of "info breakpoints"
> -# below will only contain a single breakpoint.
> +# Delete all breakpoints, watchpoints, tracepoints and catchpoints so that
> +# the output of "info breakpoints" below will only contain a single breakpoint.
> delete_breakpoints
>
> # Place a breakpoint within the function in the header file.
> diff --git a/gdb/testsuite/gdb.guile/scm-breakpoint.exp b/gdb/testsuite/gdb.guile/scm-breakpoint.exp
> index 37607b7..94d40e1 100644
> --- a/gdb/testsuite/gdb.guile/scm-breakpoint.exp
> +++ b/gdb/testsuite/gdb.guile/scm-breakpoint.exp
> @@ -225,7 +225,7 @@ proc_with_prefix test_bkpt_invisible { } {
> gdb_test "guile (print (breakpoint-visible? ibp))" \
> "= #f" "check breakpoint invisibility"
> gdb_test "info breakpoints" \
> - "No breakpoints or watchpoints.*" \
> + "No breakpoints, watchpoints, tracepoints or catchpoints.*" \
> "check info breakpoints does not show invisible breakpoints"
> gdb_test "maint info breakpoints" \
> "scm-breakpoint\.c:$ibp_location.*" \
> @@ -288,7 +288,7 @@ proc_with_prefix test_bkpt_internal { } {
> gdb_scm_test_silent_cmd "guile (register-breakpoint! wp1)" \
> "register wp1"
> gdb_test "info breakpoints" \
> - "No breakpoints or watchpoints.*" \
> + "No breakpoints, watchpoints, tracepoints or catchpoints.*" \
> "check info breakpoints does not show invisible watchpoint"
> gdb_test "maint info breakpoints" \
> ".*watchpoint.*result.*" \
> @@ -512,7 +512,7 @@ proc_with_prefix test_bkpt_temporary { } {
> ".*$srcfile:$ibp_location.*"
> gdb_test "guile (print (breakpoint-temporary? ibp))" "Invalid object: <gdb:breakpoint>.*" \
> "check temporary breakpoint is deleted after being hit"
> - gdb_test "info breakpoints" "No breakpoints or watchpoints.*" \
> + gdb_test "info breakpoints" "No breakpoints, watchpoints, tracepoints or catchpoints.*" \
> "check info breakpoints shows temporary breakpoint is deleted"
> }
>
> diff --git a/gdb/testsuite/gdb.linespec/cpexplicit.exp b/gdb/testsuite/gdb.linespec/cpexplicit.exp
> index 038c09f..d10d21f 100644
> --- a/gdb/testsuite/gdb.linespec/cpexplicit.exp
> +++ b/gdb/testsuite/gdb.linespec/cpexplicit.exp
> @@ -34,8 +34,8 @@ namespace eval $testfile {
> # at LOCATION.
> proc test_breakpoint {linespec location} {
>
> - # Delete all breakpoints, set a new breakpoint at LINESPEC,
> - # and attempt to run to it.
> + # Delete all breakpoints, watchpoints, tracepoints and catchpoints,
> + # set a new breakpoint at LINESPEC, and attempt to run to it.
> delete_breakpoints
> gdb_breakpoint $linespec
> gdb_continue_to_breakpoint $linespec $location
> diff --git a/gdb/testsuite/gdb.linespec/explicit.exp b/gdb/testsuite/gdb.linespec/explicit.exp
> index 9064c13..4bbc347 100644
> --- a/gdb/testsuite/gdb.linespec/explicit.exp
> +++ b/gdb/testsuite/gdb.linespec/explicit.exp
> @@ -33,8 +33,8 @@ namespace eval $testfile {
> proc test_breakpoint {linespec location} {
>
> set testname "set breakpoint at \"$linespec\""
> - # Delete all breakpoints, set a new breakpoint at LINESPEC,
> - # and attempt to run to it.
> + # Delete all breakpoints, watchpoints, tracepoints and catchpoints,
> + # set a new breakpoint at LINESPEC, and attempt to run to it.
> delete_breakpoints
> if {[gdb_breakpoint $linespec]} {
> pass $testname
> diff --git a/gdb/testsuite/gdb.mi/mi-return.exp b/gdb/testsuite/gdb.mi/mi-return.exp
> index 393c3a7..ed972b7 100644
> --- a/gdb/testsuite/gdb.mi/mi-return.exp
> +++ b/gdb/testsuite/gdb.mi/mi-return.exp
> @@ -57,7 +57,7 @@ mi_runto callee4
>
> mi_gdb_test "205-break-delete" \
> "205\\^done.*" \
> - "delete all breakpoints"
> + "delete all breakpoints, watchpoints, tracepoints and catchpoints"
>
> test_return_simple
>
> diff --git a/gdb/testsuite/gdb.opt/inline-small-func.exp b/gdb/testsuite/gdb.opt/inline-small-func.exp
> index 3be1955..1c95823 100644
> --- a/gdb/testsuite/gdb.opt/inline-small-func.exp
> +++ b/gdb/testsuite/gdb.opt/inline-small-func.exp
> @@ -45,8 +45,8 @@ if ![runto_main] {
> return -1
> }
>
> -# Delete all breakpoints so that the output of "info breakpoints"
> -# below will only contain a single breakpoint.
> +# Delete all breakpoints, watchpoints, tracepoints and catchpoints so that
> +# the output of "info breakpoints" below will only contain a single breakpoint.
> delete_breakpoints
>
> # Place a breakpoint within the function in the header file.
> diff --git a/gdb/testsuite/gdb.python/py-breakpoint.exp b/gdb/testsuite/gdb.python/py-breakpoint.exp
> index 58b1af3..f25d112 100644
> --- a/gdb/testsuite/gdb.python/py-breakpoint.exp
> +++ b/gdb/testsuite/gdb.python/py-breakpoint.exp
> @@ -241,7 +241,7 @@ proc_with_prefix test_bkpt_invisible { } {
> "py-breakpoint\.c:$ibp_location*" "Check breakpoint location 2"
> gdb_test "python print (ilist\[0\].visible)" \
> "False" "Check breakpoint visibility 2"
> - gdb_test "info breakpoints" "No breakpoints or watchpoints.*" \
> + gdb_test "info breakpoints" "No breakpoints, watchpoints, tracepoints or catchpoints.*" \
> "Check info breakpoints does not show invisible breakpoints"
> gdb_test "maint info breakpoints" \
> "py-breakpoint\.c:$ibp_location.*" \
> @@ -313,7 +313,7 @@ proc_with_prefix test_bkpt_internal { } {
> gdb_py_test_silent_cmd "python wp1 = gdb.Breakpoint (\"result\", type=gdb.BP_WATCHPOINT, wp_class=gdb.WP_WRITE, internal=True )" \
> "Set watchpoint" 0
> gdb_test "info breakpoints" \
> - "No breakpoints or watchpoints.*" \
> + "No breakpoints, watchpoints, tracepoints or catchpoints.*" \
> "Check info breakpoints does not show invisible breakpoints"
> gdb_test "maint info breakpoints" \
> ".*watchpoint.*result.*" \
> @@ -475,7 +475,7 @@ proc_with_prefix test_bkpt_temporary { } {
> "Check temporary stop callback executed before deletion."
> gdb_test "python print (ibp.temporary)" "RuntimeError: Breakpoint 2 is invalid.*" \
> "Check temporary breakpoint is deleted after being hit"
> - gdb_test "info breakpoints" "No breakpoints or watchpoints.*" \
> + gdb_test "info breakpoints" "No breakpoints, watchpoints, tracepoints or catchpoints.*" \
> "Check info breakpoints shows temporary breakpoint is deleted"
> }
>
> @@ -484,7 +484,7 @@ proc_with_prefix test_bkpt_temporary { } {
> proc_with_prefix test_bkpt_address {} {
> global gdb_prompt decimal srcfile
>
> - # Delete all breakpoints
> + # Delete all breakpoints, watchpoints, tracepoints and catchpoints
> delete_breakpoints
>
> gdb_test "python gdb.Breakpoint(\"*main\")" \
> diff --git a/gdb/testsuite/gdb.reverse/ppc_record_test_isa_3_1.exp b/gdb/testsuite/gdb.reverse/ppc_record_test_isa_3_1.exp
> index 8cecb06..016b17d 100644
> --- a/gdb/testsuite/gdb.reverse/ppc_record_test_isa_3_1.exp
> +++ b/gdb/testsuite/gdb.reverse/ppc_record_test_isa_3_1.exp
> @@ -108,7 +108,7 @@ gdb_test_no_output "set exec-direction forward" "start forward test3"
> gdb_test "record stop" ".*Process record is stopped.*" "stopped recording 2"
> set test_del_bkpts "delete breakpoints, answer prompt 2"
>
> -# Delete all breakpoints and catchpoints.
> +# Delete all breakpoints, watchpoints, tracepoints and catchpoints.
> delete_breakpoints
>
> gdb_test_no_output "record" "start recording test2"
> diff --git a/gdb/testsuite/gdb.threads/continue-pending-after-query.exp b/gdb/testsuite/gdb.threads/continue-pending-after-query.exp
> index a0a7915..13f2612 100644
> --- a/gdb/testsuite/gdb.threads/continue-pending-after-query.exp
> +++ b/gdb/testsuite/gdb.threads/continue-pending-after-query.exp
> @@ -67,7 +67,7 @@ proc test {} {
> set test "delete breakpoints, answer prompt"
> set saw_prompt 0
> gdb_test_multiple "delete breakpoints" $test {
> - -re "Delete all breakpoints.*y or n.*$" {
> + -re "Delete all breakpoints, watchpoints, tracepoints and catchpoints.*y or n.*$" {
> set saw_prompt 1
> send_gdb "y\n"
> exp_continue
> diff --git a/gdb/testsuite/gdb.threads/continue-pending-status.exp b/gdb/testsuite/gdb.threads/continue-pending-status.exp
> index 9814fa2..a24db80 100644
> --- a/gdb/testsuite/gdb.threads/continue-pending-status.exp
> +++ b/gdb/testsuite/gdb.threads/continue-pending-status.exp
> @@ -92,9 +92,10 @@ for {set i 0} {$i < $attempts} {incr i} {
> "Switching to thread $thread .*" \
> "switch to non-event thread"
>
> - # Delete all breakpoints so that continuing doesn't switch
> - # back to the event thread to do a step-over, which would mask
> - # away the original bug, which depended on the event thread
> + # Delete all breakpoints, watchpoints, tracepoints and catchpoints
> + # so that continuing doesn't switch back to the event
> + # thread to do a step-over, which would mask away the
> + # original bug, which depended on the event thread
> # still having TARGET_STOPPED_BY_SW_BREAKPOINT stop_reason.
> delete_breakpoints
>
> diff --git a/gdb/testsuite/gdb.threads/thread_check.exp b/gdb/testsuite/gdb.threads/thread_check.exp
> index 61ec078..b2e3ad2 100644
> --- a/gdb/testsuite/gdb.threads/thread_check.exp
> +++ b/gdb/testsuite/gdb.threads/thread_check.exp
> @@ -28,7 +28,7 @@
> # - create 2 breakpoints #1 main() #2 tf() (the thread function)
> # - run gdb till #1 main() breakpoint is reached
> # - continue to breakpoint #2 tf()
> -# - delete all breakpoints
> +# - delete all breakpoints, watchpoints, tracepoints and catchpoints
> # - exit gdb.
>
>
> @@ -71,7 +71,7 @@ gdb_test "backtrace" \
>
>
> #
> -# delete all breakpoints
> +# delete all breakpoints, watchpoints, tracepoints and catchpoints
> #
> delete_breakpoints
>
> diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
> index 97841ca..a8ea26f 100644
> --- a/gdb/testsuite/lib/gdb.exp
> +++ b/gdb/testsuite/lib/gdb.exp
> @@ -305,10 +305,10 @@ proc delete_breakpoints {} {
> #
> set timeout 100
>
> - set msg "delete all breakpoints in delete_breakpoints"
> + set msg "delete all breakpoints, watchpoints, tracepoints and catchpoints in delete_breakpoints"
> set deleted 0
> gdb_test_multiple "delete breakpoints" "$msg" {
> - -re "Delete all breakpoints.*y or n.*$" {
> + -re "Delete all breakpoints, watchpoints, tracepoints and catchpoints.*y or n.*$" {
> send_gdb "y\n" answer
> exp_continue
> }
> @@ -322,7 +322,7 @@ proc delete_breakpoints {} {
> set deleted 0
> set msg "info breakpoints"
> gdb_test_multiple $msg $msg {
> - -re "No breakpoints or watchpoints..*$gdb_prompt $" {
> + -re "No breakpoints, watchpoints, tracepoints or catchpoints..*$gdb_prompt $" {
> set deleted 1
> }
> -re "$gdb_prompt $" {
> diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp
> index e578a7e..e98b937 100644
> --- a/gdb/testsuite/lib/mi-support.exp
> +++ b/gdb/testsuite/lib/mi-support.exp
> @@ -364,25 +364,25 @@ proc mi_delete_breakpoints {} {
> # FIXME: The mi operation won't accept a prompt back and will use the 'all' arg
> send_gdb "102-break-delete\n"
> gdb_expect 30 {
> - -re "Delete all breakpoints.*y or n.*$" {
> + -re "Delete all breakpoints, watchpoints, tracepoints and catchpoints.*y or n.*$" {
> send_gdb "y\n"
> exp_continue
> }
> -re "102-break-delete\r\n102\\\^done\r\n$mi_gdb_prompt$" {
> # This happens if there were no breakpoints
> }
> - timeout { perror "Delete all breakpoints in mi_delete_breakpoints (timeout)" ; return }
> + timeout { perror "Delete all breakpoints, watchpoints, tracepoints and catchpoints in mi_delete_breakpoints (timeout)" ; return }
> }
>
> -# The correct output is not "No breakpoints or watchpoints." but an
> +# The correct output is not "No breakpoints, watchpoints, tracepoints or catchpoints." but an
> # empty BreakpointTable. Also, a query is not acceptable with mi.
> send_gdb "103-break-list\n"
> gdb_expect 30 {
> -re "103-break-list\r\n103\\\^done,BreakpointTable=\{\}\r\n$mi_gdb_prompt$" {}
> -re "103-break-list\r\n103\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[\\\]\}\r\n$mi_gdb_prompt$" {}
> - -re "103-break-list\r\n103\\\^doneNo breakpoints or watchpoints.\r\n\r\n$mi_gdb_prompt$" {warning "Unexpected console text received"}
> + -re "103-break-list\r\n103\\\^doneNo breakpoints, watchpoints, tracepoints or catchpoints.\r\n\r\n$mi_gdb_prompt$" {warning "Unexpected console text received"}
> -re "$mi_gdb_prompt$" { perror "Breakpoints not deleted" ; return }
> - -re "Delete all breakpoints.*or n.*$" {
> + -re "Delete all breakpoints, watchpoints, tracepoints and catchpoints.*or n.*$" {
> warning "Unexpected prompt for breakpoints deletion"
> send_gdb "y\n"
> exp_continue
> diff --git a/gdbserver/mem-break.cc b/gdbserver/mem-break.cc
> index 72ce8c8..d363c4b 100644
> --- a/gdbserver/mem-break.cc
> +++ b/gdbserver/mem-break.cc
> @@ -1989,7 +1989,8 @@ check_mem_write (CORE_ADDR mem_addr, unsigned char *buf,
> delete_disabled_breakpoints ();
> }
>
> -/* Delete all breakpoints, and un-insert them from the inferior. */
> +/* Delete all breakpoints, watchpoints, tracepoints and catchpoints,
> + and un-insert them from the inferior. */
>
> void
> delete_all_breakpoints (void)
> @@ -2011,8 +2012,8 @@ mark_breakpoints_out (struct process_info *proc)
> raw_bp->inserted = 0;
> }
>
> -/* Release all breakpoints, but do not try to un-insert them from the
> - inferior. */
> +/* Delete all breakpoints, watchpoints, tracepoints and catchpoints,
> + but do not try to un-insert them from the inferior. */
>
> void
> free_all_breakpoints (struct process_info *proc)
> diff --git a/gdbserver/mem-break.h b/gdbserver/mem-break.h
> index dc8742f..2dc271f 100644
> --- a/gdbserver/mem-break.h
> +++ b/gdbserver/mem-break.h
> @@ -216,7 +216,8 @@ void check_mem_read (CORE_ADDR mem_addr, unsigned char *buf, int mem_len);
> void check_mem_write (CORE_ADDR mem_addr,
> unsigned char *buf, const unsigned char *myaddr, int mem_len);
>
> -/* Delete all breakpoints. */
> +/* Delete all breakpoints, watchpoints, tracepoints and catchpoints,
> + and un-insert them from the inferior. */
>
> void delete_all_breakpoints (void);
>
> @@ -224,8 +225,8 @@ void delete_all_breakpoints (void);
>
> void mark_breakpoints_out (struct process_info *proc);
>
> -/* Delete all breakpoints, but do not try to un-insert them from the
> - inferior. */
> +/* Delete all breakpoints, watchpoints, tracepoints and catchpoints,
> + but do not try to un-insert them from the inferior. */
>
> void free_all_breakpoints (struct process_info *proc);
>