PR29482 - strip: heap-buffer-overflow
[binutils-gdb.git] / gdb / mi / mi-main.h
index 471ee4b87b75031476b448b77e1037317f0124f3..0ac83685e6e705c06853b9c267d3836bda38bba6 100644 (file)
@@ -1,12 +1,12 @@
 /* MI Internal Functions for GDB, the GNU debugger.
 
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003-2022 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
    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 2 of the License, or
+   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,
    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, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#ifndef MI_MAIN_H
-#define MI_MAIN_H
+#ifndef MI_MI_MAIN_H
+#define MI_MI_MAIN_H
 
-extern void mi_setup_architecture_data (void);
+struct ui_file;
 
 extern void mi_load_progress (const char *section_name,
                              unsigned long sent_so_far,
                              unsigned long total_section,
                              unsigned long total_sent,
                              unsigned long grand_total);
-#endif
 
+extern void mi_print_timing_maybe (struct ui_file *file);
+
+/* Whether MI is in async mode.  */
+
+extern int mi_async_p (void);
+
+extern char *current_token;
+
+extern int running_result_record_printed;
+extern int mi_proceeded;
+
+struct mi_suppress_notification
+{
+  /* Breakpoint notification suppressed?  */
+  int breakpoint;
+  /* Command param changed notification suppressed?  */
+  int cmd_param_changed;
+  /* Traceframe changed notification suppressed?  */
+  int traceframe;
+  /* Memory changed notification suppressed?  */
+  int memory;
+  /* User selected context changed notification suppressed?  */
+  int user_selected_context;
+};
+extern struct mi_suppress_notification mi_suppress_notification;
+
+/* This is a hack so we can get some extra commands going, but has existed
+   within GDB for many years now.  Ideally we don't want to channel things
+   through the CLI, but implement all commands as pure MI commands with
+   their own implementation.
+
+   Execute the CLI command CMD, if ARGS_P is true then ARGS should be a
+   non-nullptr string containing arguments to add after CMD.  If ARGS_P is
+   false then ARGS must be nullptr.  */
+
+extern void mi_execute_cli_command (const char *cmd, bool args_p,
+                                   const char *args);
+
+/* Implementation of -fix-multi-location-breakpoint-output.  */
+
+extern void mi_cmd_fix_multi_location_breakpoint_output (const char *command,
+                                                        char **argv, int argc);
+
+/* Implementation of -fix-breakpoint-script-output.  */
+
+extern void mi_cmd_fix_breakpoint_script_output (const char *command,
+                                                char **argv, int argc);
+
+#endif /* MI_MI_MAIN_H */