From: Tom Tromey Date: Fri, 17 Jun 2022 15:38:20 +0000 (-0600) Subject: Move mi_interpreter to mi-interp.h X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ee04bfc01e51faae3fb64f6582f0e207d3ad898d;p=binutils-gdb.git Move mi_interpreter to mi-interp.h I noticed that touching interps.h caused a lot of recompilation. I tracked this down to mi-common.h including this file. This patch moves the MI interpreter to mi-interp.h, which cuts down on recompilation when modifying interps.h. --- diff --git a/gdb/mi/mi-common.h b/gdb/mi/mi-common.h index 0c254baf8b4..6970d41ae08 100644 --- a/gdb/mi/mi-common.h +++ b/gdb/mi/mi-common.h @@ -19,10 +19,6 @@ #ifndef MI_MI_COMMON_H #define MI_MI_COMMON_H -#include "interps.h" - -struct mi_console_file; - /* Represents the reason why GDB is sending an asynchronous command to the front end. NOTE: When modifing this, don't forget to update gdb.texinfo! */ @@ -52,50 +48,4 @@ enum async_reply_reason const char *async_reason_lookup (enum async_reply_reason reason); -/* An MI interpreter. */ - -class mi_interp final : public interp -{ -public: - mi_interp (const char *name) - : interp (name) - {} - - void init (bool top_level) override; - void resume () override; - void suspend () override; - gdb_exception exec (const char *command_str) override; - ui_out *interp_ui_out () override; - void set_logging (ui_file_up logfile, bool logging_redirect, - bool debug_redirect) override; - void pre_command_loop () override; - - /* MI's output channels */ - mi_console_file *out; - mi_console_file *err; - mi_console_file *log; - mi_console_file *targ; - mi_console_file *event_channel; - - /* Raw console output. */ - struct ui_file *raw_stdout; - - /* Raw logfile output. */ - struct ui_file *raw_stdlog; - - /* Save the original value of raw_stdout and raw_stdlog here when logging, and - the file which we need to delete, so we can restore correctly when - done. */ - struct ui_file *saved_raw_stdout; - struct ui_file *saved_raw_stdlog; - struct ui_file *saved_raw_file_to_delete; - - - /* MI's builder. */ - struct ui_out *mi_uiout; - - /* MI's CLI builder (wraps OUT). */ - struct ui_out *cli_uiout; -}; - #endif /* MI_MI_COMMON_H */ diff --git a/gdb/mi/mi-interp.h b/gdb/mi/mi-interp.h index 53369f2eea7..adf6eaffef4 100644 --- a/gdb/mi/mi-interp.h +++ b/gdb/mi/mi-interp.h @@ -20,6 +20,56 @@ #ifndef MI_MI_INTERP_H #define MI_MI_INTERP_H +#include "interps.h" + +struct mi_console_file; + +/* An MI interpreter. */ + +class mi_interp final : public interp +{ +public: + mi_interp (const char *name) + : interp (name) + {} + + void init (bool top_level) override; + void resume () override; + void suspend () override; + gdb_exception exec (const char *command_str) override; + ui_out *interp_ui_out () override; + void set_logging (ui_file_up logfile, bool logging_redirect, + bool debug_redirect) override; + void pre_command_loop () override; + + /* MI's output channels */ + mi_console_file *out; + mi_console_file *err; + mi_console_file *log; + mi_console_file *targ; + mi_console_file *event_channel; + + /* Raw console output. */ + struct ui_file *raw_stdout; + + /* Raw logfile output. */ + struct ui_file *raw_stdlog; + + /* Save the original value of raw_stdout and raw_stdlog here when logging, and + the file which we need to delete, so we can restore correctly when + done. */ + struct ui_file *saved_raw_stdout; + struct ui_file *saved_raw_stdlog; + struct ui_file *saved_raw_file_to_delete; + + + /* MI's builder. */ + struct ui_out *mi_uiout; + + /* MI's CLI builder (wraps OUT). */ + struct ui_out *cli_uiout; +}; + /* Output the shared object attributes to UIOUT. */ void mi_output_solib_attribs (ui_out *uiout, struct so_list *solib); diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c index 18707bf62e7..68868e49e99 100644 --- a/gdb/mi/mi-main.c +++ b/gdb/mi/mi-main.c @@ -40,7 +40,7 @@ #include "regcache.h" #include "frame.h" #include "mi-main.h" -#include "mi-common.h" +#include "mi-interp.h" #include "language.h" #include "valprint.h" #include "osdata.h"