public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Bruno Larsen <blarsen@redhat.com>
To: Tiezhu Yang <yangtiezhu@loongson.cn>, gdb-patches@sourceware.org
Subject: Re: [PATCH v2] gdb: Modify the output of "info breakpoints" and "delete breakpoints"
Date: Thu, 19 May 2022 10:08:15 -0300	[thread overview]
Message-ID: <d892f699-6992-c29f-b653-b349cd1ccae1@redhat.com> (raw)
In-Reply-To: <1652951760-10805-1-git-send-email-yangtiezhu@loongson.cn>


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);
>   


  reply	other threads:[~2022-05-19 13:08 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-19  9:16 Tiezhu Yang
2022-05-19 13:08 ` Bruno Larsen [this message]
2024-02-18  2:06   ` Tiezhu Yang
2024-02-18  3:48     ` Kevin Buettner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d892f699-6992-c29f-b653-b349cd1ccae1@redhat.com \
    --to=blarsen@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=yangtiezhu@loongson.cn \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).