From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io1-xd34.google.com (mail-io1-xd34.google.com [IPv6:2607:f8b0:4864:20::d34]) by sourceware.org (Postfix) with ESMTPS id 4D0893846030 for ; Mon, 20 Jun 2022 13:46:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4D0893846030 Received: by mail-io1-xd34.google.com with SMTP id p128so11139549iof.1 for ; Mon, 20 Jun 2022 06:46:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ZSp/mm8+otO7S9kxuj5L5m9kAhKazAV2NuuiMF2Hcfs=; b=DtHHbDIuCcvV26XdgfQnLDgADruOA8Cp/vO0WG06DwAqrRhZWbS7qMUiNqshHioIDx qZF2RXeYfl9XMYyMczu8jm82Y8XwIX+yiAHqh50yuJoMZvO8oFqpNvahtc9cR2Af8/GI orjiIdwV48RTbgEFxEWY1IgLaFL0qVJ98sHhRgeAqBRRZVmi8qOhKAOa6vyFNg+uit8j 5JAnMM7uLxal2pWywfD1XuPEUqYXpueTUvNM7T7XmbOLO7uf2nXNn2vR5lpV5l/4lBdP RLWLLnqG2OP08wTam/ucfMi3AjnO0QXabHh7mMvnDtmY32RuLAA/C/vcInnr/GIRarwu YctQ== X-Gm-Message-State: AJIora/yaJnZfsZ+cbfimZKXue6WDF/XvAMdkKIuV9OfU7AkLaJpNJkW YBs09UL63vv0ndGsTZcPrc98cg+XPg8PZg== X-Google-Smtp-Source: AGRyM1uoflIdLSINhyHezmBMVTPchyyJx5Gf3jFj5qVhTVesBEogjRhCrsa8H59xXDMQDKzrGEFXug== X-Received: by 2002:a5d:83c7:0:b0:66c:cc68:2f2d with SMTP id u7-20020a5d83c7000000b0066ccc682f2dmr10789371ior.74.1655732814596; Mon, 20 Jun 2022 06:46:54 -0700 (PDT) Received: from murgatroyd.Home (71-211-187-180.hlrn.qwest.net. [71.211.187.180]) by smtp.gmail.com with ESMTPSA id x68-20020a6bc747000000b006692192baf7sm6636354iof.25.2022.06.20.06.46.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Jun 2022 06:46:54 -0700 (PDT) From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [PATCH 2/3] Move mi_interpreter to mi-interp.h Date: Mon, 20 Jun 2022 07:46:49 -0600 Message-Id: <20220620134650.2664575-3-tromey@adacore.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220620134650.2664575-1-tromey@adacore.com> References: <20220620134650.2664575-1-tromey@adacore.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Jun 2022 13:46:56 -0000 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