* [PATCH v4 0/3] Suppressing CLI notifications @ 2022-02-03 16:01 Tankut Baris Aktemur 2022-02-03 16:01 ` [PATCH v4 3/3] gdb: add the 'set/show suppress-cli-notifications' command Tankut Baris Aktemur 0 siblings, 1 reply; 4+ messages in thread From: Tankut Baris Aktemur @ 2022-02-03 16:01 UTC (permalink / raw) To: gdb-patches; +Cc: aburgess, tom, eliz Hello, This is a small series about suppressing CLI notifications. Previous revisions are at https://sourceware.org/pipermail/gdb-patches/2021-December/184008.html https://sourceware.org/pipermail/gdb-patches/2022-January/185320.html https://sourceware.org/pipermail/gdb-patches/2022-February/185678.html In Revision v4: * Patch 1/3 is omitted (already approved in v1). * Patch 2/3 is omitted (already approved in v1). * Patch 3/3 renames the command to "suppress-cli-notifications", says "notifications" instead of "notification events" throughout the patch, and updates the document to address Eli's comments at https://sourceware.org/pipermail/gdb-patches/2022-February/185680.html Regards Baris Tankut Baris Aktemur (3): gdb/cli: convert cli_suppress_notification from int to bool gdb/cli: add a 'normal_stop' option to 'cli_suppress_notification' gdb: add the 'set/show suppress-cli-notifications' command gdb/NEWS | 8 +++ gdb/cli/cli-cmds.c | 39 +++++++++++ gdb/cli/cli-decode.c | 10 +-- gdb/cli/cli-decode.h | 2 +- gdb/cli/cli-interp.c | 9 +-- gdb/command.h | 11 +-- gdb/doc/gdb.texinfo | 69 +++++++++++++++++++ .../gdb.base/cli-suppress-notification.c | 26 +++++++ .../gdb.base/cli-suppress-notification.exp | 39 +++++++++++ gdb/tui/tui-interp.c | 4 ++ 10 files changed, 203 insertions(+), 14 deletions(-) create mode 100644 gdb/testsuite/gdb.base/cli-suppress-notification.c create mode 100644 gdb/testsuite/gdb.base/cli-suppress-notification.exp -- 2.33.1 Intel Deutschland GmbH Registered Address: Am Campeon 10, 85579 Neubiberg, Germany Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de> Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva Chairperson of the Supervisory Board: Nicole Lau Registered Office: Munich Commercial Register: Amtsgericht Muenchen HRB 186928 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v4 3/3] gdb: add the 'set/show suppress-cli-notifications' command 2022-02-03 16:01 [PATCH v4 0/3] Suppressing CLI notifications Tankut Baris Aktemur @ 2022-02-03 16:01 ` Tankut Baris Aktemur 2022-02-03 16:58 ` Eli Zaretskii 2022-02-04 17:57 ` Andrew Burgess 0 siblings, 2 replies; 4+ messages in thread From: Tankut Baris Aktemur @ 2022-02-03 16:01 UTC (permalink / raw) To: gdb-patches; +Cc: aburgess, tom, eliz GDB already has a flag to suppress printing notification events, such as thread and inferior context switches, on the CLI. This is used internally when executing commands. Make the flag available to the user via a new command. This is expected to be useful in scripts. For instance, suppose that when Inferior 1 gets to a certain state, you want to add and set up a new inferior using the commands below, but you also want to have a reduced/clean output. define do-setup printf "Setting up Inferior 2...\n" add-inferior -exec a.out inferior 2 break file.c:3 run inferior 1 printf "Done\n" end Currently, GDB prints (gdb) do-setup Setting up Inferior 2... [New inferior 2] Added inferior 2 on connection 1 (native) [Switching to inferior 2 [<null>] (/tmp/a.out)] Breakpoint 2 at 0x1155: file file.c, line 3. Thread 2.1 "a.out" hit Breakpoint 2, main () at file.c:3 3 return 0; [Switching to inferior 1 [process 7670] (/tmp/test)] [Switching to thread 1.1 (process 7670)] #0 main () at test.c:2 2 int a = 1; Done GDB's Python API make it possible to capture and return GDB's output, but this does not work for all the streams. In particular, CLI notification events are not captured: (gdb) python gdb.execute("do-setup", False, True) [Switching to inferior 2 [<null>] (/tmp/a.out)] Thread 2.1 "a.out" hit Breakpoint 2, main () at file.c:3 3 return 0; [Switching to inferior 1 [process 8263] (/tmp/test)] [Switching to thread 1.1 (process 8263)] #0 main () at test.c:2 2 int a = 1; You can use the new "set suppress-cli-notifications" command to suppress the output: (gdb) set suppress-cli-notifications on (gdb) do-setup Setting up Inferior 2... [New inferior 2] Added inferior 2 on connection 1 (native) Breakpoint 2 at 0x1155: file file.c, line 3. Done --- gdb/NEWS | 8 +++ gdb/cli/cli-cmds.c | 39 +++++++++++ gdb/doc/gdb.texinfo | 69 +++++++++++++++++++ .../gdb.base/cli-suppress-notification.c | 26 +++++++ .../gdb.base/cli-suppress-notification.exp | 39 +++++++++++ 5 files changed, 181 insertions(+) create mode 100644 gdb/testsuite/gdb.base/cli-suppress-notification.c create mode 100644 gdb/testsuite/gdb.base/cli-suppress-notification.exp diff --git a/gdb/NEWS b/gdb/NEWS index e1900596ca7..f150379d722 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -81,6 +81,14 @@ maint show gnu-source-highlight enabled styling to a particular source file, then the Python Pygments library will be used instead. +set suppress-cli-notifications (on|off) +show suppress-cli-notifications + This controls whether printing the notifications is suppressed for CLI. + CLI notifications occur when you change the selected context + (i.e., the current inferior, thread and/or the frame), or when + the program being debugged stops (e.g., because of hitting a + breakpoint, completing source-stepping, an interrupt, etc.). + * Changed commands maint packet diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c index 1d14b8e4527..825ddfe2be3 100644 --- a/gdb/cli/cli-cmds.c +++ b/gdb/cli/cli-cmds.c @@ -192,6 +192,11 @@ static const char *const script_ext_enums[] = { static const char *script_ext_mode = script_ext_soft; \f + +/* User-controllable flag to suppress event notification on CLI. */ + +static bool user_wants_cli_suppress_notification = false; + /* Utility used everywhere when at least one argument is needed and none is supplied. */ @@ -2136,6 +2141,28 @@ show_max_user_call_depth (struct ui_file *file, int from_tty, value); } +/* Implement 'show suppress-cli-notifications'. */ + +static void +show_suppress_cli_notifications (ui_file *file, int from_tty, + cmd_list_element *c, const char *value) +{ + fprintf_filtered (file, _("Suppression of printing CLI notifications " + "is %s.\n"), value); +} + +/* Implement 'set suppress-cli-notifications'. */ + +static void +set_suppress_cli_notifications (const char *args, int from_tty, + cmd_list_element *c) +{ + cli_suppress_notification.user_selected_context + = user_wants_cli_suppress_notification; + cli_suppress_notification.normal_stop + = user_wants_cli_suppress_notification; +} + /* Returns the cmd_list_element in SHOWLIST corresponding to the first argument of ARGV, which must contain one single value. Throws an error if no value provided, or value not correct. @@ -2734,6 +2761,18 @@ Make \"wLapPeu\" an alias of 2 nested \"with\":\n\ set_cmd_completer_handle_brkchars (c, alias_command_completer); + add_setshow_boolean_cmd ("suppress-cli-notifications", no_class, + &user_wants_cli_suppress_notification, + _("\ +Set whether printing notifications on CLI is suppressed."), _("\ +Show whether printing notifications on CLI is suppressed."), _("\ +When on, printing notifications (such as inferior/thread switch)\n\ +on CLI is suppressed."), + set_suppress_cli_notifications, + show_suppress_cli_notifications, + &setlist, + &showlist); + const char *source_help_text = xstrprintf (_("\ Read commands from a file named FILE.\n\ \n\ diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index fe81687a66c..815005b6b0c 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -27211,6 +27211,75 @@ inside a cygwin window. Displays whether the debugger is operating in interactive mode or not. @end table +@table @code +@kindex set suppress-cli-notifications +@item set suppress-cli-notifications +If @code{on}, command-line-interface (CLI) notifications that are +printed by @value{GDBN} are suppressed. If @code{off}, the +notifications are printed as usual. The default value is @code{off}. +CLI notifications occur when you change the selected context or when +the program being debugged stops, as detailed below. + +@table @emph +@item User-selected context changes: +When you change the selected context (i.e.@: the current inferior, +thread and/or the frame), @value{GDBN} prints information about the +new context. For example, the default behavior is below: + +@smallexample +(gdb) inferior 1 +[Switching to inferior 1 [process 634] (/tmp/test)] +[Switching to thread 1 (process 634)] +#0 main () at test.c:3 +3 return 0; +(gdb) +@end smallexample + +When the notifications are suppressed, the new context is not printed: + +@smallexample +(gdb) set suppress-cli-notifications on +(gdb) inferior 1 +(gdb) +@end smallexample + +@item The program being debugged stops: +When the program you are debugging stops (e.g.@: because of hitting a +breakpoint, completing source-stepping, an interrupt, etc.), +@value{GDBN} prints information about the stop event. For example, +below is a breakpoint hit: + +@smallexample +(gdb) break test.c:3 +Breakpoint 2 at 0x555555555155: file test.c, line 3. +(gdb) continue +Continuing. + +Breakpoint 2, main () at test.c:3 +3 return 0; +(gdb) +@end smallexample + +When the notifications are suppressed, the output becomes: + +@smallexample +(gdb) break test.c:3 +Breakpoint 2 at 0x555555555155: file test.c, line 3. +(gdb) set suppress-cli-notifications on +(gdb) continue +Continuing. +(gdb) +@end smallexample + +Suppressing CLI notifications may be useful in scripts to obtain a +reduced output from a list of commands. +@end table + +@kindex show suppress-cli-notifications +@item show suppress-cli-notifications +Displays whether printing CLI notifications is suppressed or not. +@end table + @node Extending GDB @chapter Extending @value{GDBN} @cindex extending GDB diff --git a/gdb/testsuite/gdb.base/cli-suppress-notification.c b/gdb/testsuite/gdb.base/cli-suppress-notification.c new file mode 100644 index 00000000000..243dbc9c70a --- /dev/null +++ b/gdb/testsuite/gdb.base/cli-suppress-notification.c @@ -0,0 +1,26 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2020-2022 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +static int global = 0; + +int +main () +{ + global++; + global++; + return 0; +} diff --git a/gdb/testsuite/gdb.base/cli-suppress-notification.exp b/gdb/testsuite/gdb.base/cli-suppress-notification.exp new file mode 100644 index 00000000000..1e4cc9869e4 --- /dev/null +++ b/gdb/testsuite/gdb.base/cli-suppress-notification.exp @@ -0,0 +1,39 @@ +# Copyright 2020-2022 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Test the set/show suppress-cli-notifications command. + +standard_testfile + +if {[prepare_for_testing "failed to prepare" ${binfile} ${srcfile}]} { + return +} + +if {![runto_main]} { + return +} + +gdb_test "inferior 1" ".*Switching to inferior 1 .* to thread 1 .*" \ + "inferior switch is not suppressed" + +gdb_test_no_output "set suppress-cli-notifications on" +gdb_test_no_output "inferior 1" "inferior switch is suppressed" +gdb_test_no_output "next" "stepping is suppressed" + +# Now check that suppression can be turned back off. +gdb_test_no_output "set suppress-cli-notifications off" +gdb_test "inferior 1" ".*Switching to inferior 1 .* to thread 1 .*" \ + "inferior switch is not suppressed again" +gdb_test "next" "return 0;" "stepping is not suppressed" -- 2.33.1 Intel Deutschland GmbH Registered Address: Am Campeon 10, 85579 Neubiberg, Germany Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de> Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva Chairperson of the Supervisory Board: Nicole Lau Registered Office: Munich Commercial Register: Amtsgericht Muenchen HRB 186928 ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v4 3/3] gdb: add the 'set/show suppress-cli-notifications' command 2022-02-03 16:01 ` [PATCH v4 3/3] gdb: add the 'set/show suppress-cli-notifications' command Tankut Baris Aktemur @ 2022-02-03 16:58 ` Eli Zaretskii 2022-02-04 17:57 ` Andrew Burgess 1 sibling, 0 replies; 4+ messages in thread From: Eli Zaretskii @ 2022-02-03 16:58 UTC (permalink / raw) To: Tankut Baris Aktemur; +Cc: gdb-patches, aburgess, tom > From: Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> > Cc: aburgess@redhat.com, > tom@tromey.com, > eliz@gnu.org > Date: Thu, 3 Feb 2022 17:01:21 +0100 > > gdb/NEWS | 8 +++ > gdb/cli/cli-cmds.c | 39 +++++++++++ > gdb/doc/gdb.texinfo | 69 +++++++++++++++++++ > .../gdb.base/cli-suppress-notification.c | 26 +++++++ > .../gdb.base/cli-suppress-notification.exp | 39 +++++++++++ > 5 files changed, 181 insertions(+) > create mode 100644 gdb/testsuite/gdb.base/cli-suppress-notification.c > create mode 100644 gdb/testsuite/gdb.base/cli-suppress-notification.exp Thanks, the documentation parts are okay. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v4 3/3] gdb: add the 'set/show suppress-cli-notifications' command 2022-02-03 16:01 ` [PATCH v4 3/3] gdb: add the 'set/show suppress-cli-notifications' command Tankut Baris Aktemur 2022-02-03 16:58 ` Eli Zaretskii @ 2022-02-04 17:57 ` Andrew Burgess 1 sibling, 0 replies; 4+ messages in thread From: Andrew Burgess @ 2022-02-04 17:57 UTC (permalink / raw) To: Tankut Baris Aktemur; +Cc: gdb-patches, tom * Tankut Baris Aktemur via Gdb-patches <gdb-patches@sourceware.org> [2022-02-03 17:01:21 +0100]: > GDB already has a flag to suppress printing notification events, such > as thread and inferior context switches, on the CLI. This is used > internally when executing commands. Make the flag available to the > user via a new command. This is expected to be useful in scripts. > > For instance, suppose that when Inferior 1 gets to a certain state, > you want to add and set up a new inferior using the commands below, > but you also want to have a reduced/clean output. > > define do-setup > printf "Setting up Inferior 2...\n" > add-inferior -exec a.out > inferior 2 > break file.c:3 > run > inferior 1 > printf "Done\n" > end > > Currently, GDB prints > > (gdb) do-setup > Setting up Inferior 2... > [New inferior 2] > Added inferior 2 on connection 1 (native) > [Switching to inferior 2 [<null>] (/tmp/a.out)] > Breakpoint 2 at 0x1155: file file.c, line 3. > > Thread 2.1 "a.out" hit Breakpoint 2, main () at file.c:3 > 3 return 0; > [Switching to inferior 1 [process 7670] (/tmp/test)] > [Switching to thread 1.1 (process 7670)] > #0 main () at test.c:2 > 2 int a = 1; > Done > > GDB's Python API make it possible to capture and return GDB's output, > but this does not work for all the streams. In particular, CLI > notification events are not captured: > > (gdb) python gdb.execute("do-setup", False, True) > [Switching to inferior 2 [<null>] (/tmp/a.out)] > > Thread 2.1 "a.out" hit Breakpoint 2, main () at file.c:3 > 3 return 0; > [Switching to inferior 1 [process 8263] (/tmp/test)] > [Switching to thread 1.1 (process 8263)] > #0 main () at test.c:2 > 2 int a = 1; > > You can use the new "set suppress-cli-notifications" command to > suppress the output: > > (gdb) set suppress-cli-notifications on > (gdb) do-setup > Setting up Inferior 2... > [New inferior 2] > Added inferior 2 on connection 1 (native) > Breakpoint 2 at 0x1155: file file.c, line 3. > Done Thanks for making those changes. This looks good to me. Thanks, Andrew > --- > gdb/NEWS | 8 +++ > gdb/cli/cli-cmds.c | 39 +++++++++++ > gdb/doc/gdb.texinfo | 69 +++++++++++++++++++ > .../gdb.base/cli-suppress-notification.c | 26 +++++++ > .../gdb.base/cli-suppress-notification.exp | 39 +++++++++++ > 5 files changed, 181 insertions(+) > create mode 100644 gdb/testsuite/gdb.base/cli-suppress-notification.c > create mode 100644 gdb/testsuite/gdb.base/cli-suppress-notification.exp > > diff --git a/gdb/NEWS b/gdb/NEWS > index e1900596ca7..f150379d722 100644 > --- a/gdb/NEWS > +++ b/gdb/NEWS > @@ -81,6 +81,14 @@ maint show gnu-source-highlight enabled > styling to a particular source file, then the Python Pygments > library will be used instead. > > +set suppress-cli-notifications (on|off) > +show suppress-cli-notifications > + This controls whether printing the notifications is suppressed for CLI. > + CLI notifications occur when you change the selected context > + (i.e., the current inferior, thread and/or the frame), or when > + the program being debugged stops (e.g., because of hitting a > + breakpoint, completing source-stepping, an interrupt, etc.). > + > * Changed commands > > maint packet > diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c > index 1d14b8e4527..825ddfe2be3 100644 > --- a/gdb/cli/cli-cmds.c > +++ b/gdb/cli/cli-cmds.c > @@ -192,6 +192,11 @@ static const char *const script_ext_enums[] = { > > static const char *script_ext_mode = script_ext_soft; > \f > + > +/* User-controllable flag to suppress event notification on CLI. */ > + > +static bool user_wants_cli_suppress_notification = false; > + > /* Utility used everywhere when at least one argument is needed and > none is supplied. */ > > @@ -2136,6 +2141,28 @@ show_max_user_call_depth (struct ui_file *file, int from_tty, > value); > } > > +/* Implement 'show suppress-cli-notifications'. */ > + > +static void > +show_suppress_cli_notifications (ui_file *file, int from_tty, > + cmd_list_element *c, const char *value) > +{ > + fprintf_filtered (file, _("Suppression of printing CLI notifications " > + "is %s.\n"), value); > +} > + > +/* Implement 'set suppress-cli-notifications'. */ > + > +static void > +set_suppress_cli_notifications (const char *args, int from_tty, > + cmd_list_element *c) > +{ > + cli_suppress_notification.user_selected_context > + = user_wants_cli_suppress_notification; > + cli_suppress_notification.normal_stop > + = user_wants_cli_suppress_notification; > +} > + > /* Returns the cmd_list_element in SHOWLIST corresponding to the first > argument of ARGV, which must contain one single value. > Throws an error if no value provided, or value not correct. > @@ -2734,6 +2761,18 @@ Make \"wLapPeu\" an alias of 2 nested \"with\":\n\ > > set_cmd_completer_handle_brkchars (c, alias_command_completer); > > + add_setshow_boolean_cmd ("suppress-cli-notifications", no_class, > + &user_wants_cli_suppress_notification, > + _("\ > +Set whether printing notifications on CLI is suppressed."), _("\ > +Show whether printing notifications on CLI is suppressed."), _("\ > +When on, printing notifications (such as inferior/thread switch)\n\ > +on CLI is suppressed."), > + set_suppress_cli_notifications, > + show_suppress_cli_notifications, > + &setlist, > + &showlist); > + > const char *source_help_text = xstrprintf (_("\ > Read commands from a file named FILE.\n\ > \n\ > diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo > index fe81687a66c..815005b6b0c 100644 > --- a/gdb/doc/gdb.texinfo > +++ b/gdb/doc/gdb.texinfo > @@ -27211,6 +27211,75 @@ inside a cygwin window. > Displays whether the debugger is operating in interactive mode or not. > @end table > > +@table @code > +@kindex set suppress-cli-notifications > +@item set suppress-cli-notifications > +If @code{on}, command-line-interface (CLI) notifications that are > +printed by @value{GDBN} are suppressed. If @code{off}, the > +notifications are printed as usual. The default value is @code{off}. > +CLI notifications occur when you change the selected context or when > +the program being debugged stops, as detailed below. > + > +@table @emph > +@item User-selected context changes: > +When you change the selected context (i.e.@: the current inferior, > +thread and/or the frame), @value{GDBN} prints information about the > +new context. For example, the default behavior is below: > + > +@smallexample > +(gdb) inferior 1 > +[Switching to inferior 1 [process 634] (/tmp/test)] > +[Switching to thread 1 (process 634)] > +#0 main () at test.c:3 > +3 return 0; > +(gdb) > +@end smallexample > + > +When the notifications are suppressed, the new context is not printed: > + > +@smallexample > +(gdb) set suppress-cli-notifications on > +(gdb) inferior 1 > +(gdb) > +@end smallexample > + > +@item The program being debugged stops: > +When the program you are debugging stops (e.g.@: because of hitting a > +breakpoint, completing source-stepping, an interrupt, etc.), > +@value{GDBN} prints information about the stop event. For example, > +below is a breakpoint hit: > + > +@smallexample > +(gdb) break test.c:3 > +Breakpoint 2 at 0x555555555155: file test.c, line 3. > +(gdb) continue > +Continuing. > + > +Breakpoint 2, main () at test.c:3 > +3 return 0; > +(gdb) > +@end smallexample > + > +When the notifications are suppressed, the output becomes: > + > +@smallexample > +(gdb) break test.c:3 > +Breakpoint 2 at 0x555555555155: file test.c, line 3. > +(gdb) set suppress-cli-notifications on > +(gdb) continue > +Continuing. > +(gdb) > +@end smallexample > + > +Suppressing CLI notifications may be useful in scripts to obtain a > +reduced output from a list of commands. > +@end table > + > +@kindex show suppress-cli-notifications > +@item show suppress-cli-notifications > +Displays whether printing CLI notifications is suppressed or not. > +@end table > + > @node Extending GDB > @chapter Extending @value{GDBN} > @cindex extending GDB > diff --git a/gdb/testsuite/gdb.base/cli-suppress-notification.c b/gdb/testsuite/gdb.base/cli-suppress-notification.c > new file mode 100644 > index 00000000000..243dbc9c70a > --- /dev/null > +++ b/gdb/testsuite/gdb.base/cli-suppress-notification.c > @@ -0,0 +1,26 @@ > +/* This testcase is part of GDB, the GNU debugger. > + > + Copyright 2020-2022 Free Software Foundation, Inc. > + > + This program is free software; you can redistribute it and/or modify > + it under the terms of the GNU General Public License as published by > + the Free Software Foundation; either version 3 of the License, or > + (at your option) any later version. > + > + This program is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + GNU General Public License for more details. > + > + You should have received a copy of the GNU General Public License > + along with this program. If not, see <http://www.gnu.org/licenses/>. */ > + > +static int global = 0; > + > +int > +main () > +{ > + global++; > + global++; > + return 0; > +} > diff --git a/gdb/testsuite/gdb.base/cli-suppress-notification.exp b/gdb/testsuite/gdb.base/cli-suppress-notification.exp > new file mode 100644 > index 00000000000..1e4cc9869e4 > --- /dev/null > +++ b/gdb/testsuite/gdb.base/cli-suppress-notification.exp > @@ -0,0 +1,39 @@ > +# Copyright 2020-2022 Free Software Foundation, Inc. > + > +# This program is free software; you can redistribute it and/or modify > +# it under the terms of the GNU General Public License as published by > +# the Free Software Foundation; either version 3 of the License, or > +# (at your option) any later version. > +# > +# This program is distributed in the hope that it will be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +# GNU General Public License for more details. > +# > +# You should have received a copy of the GNU General Public License > +# along with this program. If not, see <http://www.gnu.org/licenses/>. > + > +# Test the set/show suppress-cli-notifications command. > + > +standard_testfile > + > +if {[prepare_for_testing "failed to prepare" ${binfile} ${srcfile}]} { > + return > +} > + > +if {![runto_main]} { > + return > +} > + > +gdb_test "inferior 1" ".*Switching to inferior 1 .* to thread 1 .*" \ > + "inferior switch is not suppressed" > + > +gdb_test_no_output "set suppress-cli-notifications on" > +gdb_test_no_output "inferior 1" "inferior switch is suppressed" > +gdb_test_no_output "next" "stepping is suppressed" > + > +# Now check that suppression can be turned back off. > +gdb_test_no_output "set suppress-cli-notifications off" > +gdb_test "inferior 1" ".*Switching to inferior 1 .* to thread 1 .*" \ > + "inferior switch is not suppressed again" > +gdb_test "next" "return 0;" "stepping is not suppressed" > -- > 2.33.1 > > Intel Deutschland GmbH > Registered Address: Am Campeon 10, 85579 Neubiberg, Germany > Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de> > Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva > Chairperson of the Supervisory Board: Nicole Lau > Registered Office: Munich > Commercial Register: Amtsgericht Muenchen HRB 186928 > ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-02-04 17:57 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-02-03 16:01 [PATCH v4 0/3] Suppressing CLI notifications Tankut Baris Aktemur 2022-02-03 16:01 ` [PATCH v4 3/3] gdb: add the 'set/show suppress-cli-notifications' command Tankut Baris Aktemur 2022-02-03 16:58 ` Eli Zaretskii 2022-02-04 17:57 ` Andrew Burgess
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).