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
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. */
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.
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\
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
--- /dev/null
+/* 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;
+}
--- /dev/null
+# 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"