public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Tom Tromey <tromey@adacore.com>
To: gdb-patches@sourceware.org
Cc: Tom Tromey <tromey@adacore.com>
Subject: [PATCH 2/3] Move mi_interpreter to mi-interp.h
Date: Mon, 20 Jun 2022 07:46:49 -0600	[thread overview]
Message-ID: <20220620134650.2664575-3-tromey@adacore.com> (raw)
In-Reply-To: <20220620134650.2664575-1-tromey@adacore.com>

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.
---
 gdb/mi/mi-common.h | 50 ----------------------------------------------
 gdb/mi/mi-interp.h | 50 ++++++++++++++++++++++++++++++++++++++++++++++
 gdb/mi/mi-main.c   |  2 +-
 3 files changed, 51 insertions(+), 51 deletions(-)

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"
-- 
2.34.1


  parent reply	other threads:[~2022-06-20 13:46 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-20 13:46 [PATCH 0/3] Minor improvements to 'interp' Tom Tromey
2022-06-20 13:46 ` [PATCH 1/3] Use unique_xmalloc_ptr in interp Tom Tromey
2022-06-20 13:46 ` Tom Tromey [this message]
2022-06-20 13:46 ` [PATCH 3/3] Use std::string for interpreter_p Tom Tromey
2022-06-21 12:11   ` Andrew Burgess
2022-06-22 19:50     ` Tom Tromey

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=20220620134650.2664575-3-tromey@adacore.com \
    --to=tromey@adacore.com \
    --cc=gdb-patches@sourceware.org \
    /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).