From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 92277 invoked by alias); 21 Mar 2016 15:21:38 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 92180 invoked by uid 89); 21 Mar 2016 15:21:38 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=Events, STATE, 3767 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Mon, 21 Mar 2016 15:21:32 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (Postfix) with ESMTPS id C40C24621A for ; Mon, 21 Mar 2016 15:21:30 +0000 (UTC) Received: from cascais.lan (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u2LFLGPf019569 for ; Mon, 21 Mar 2016 11:21:30 -0400 From: Pedro Alves To: gdb-patches@sourceware.org Subject: [PATCH v2 13/25] Always process target events in the main UI Date: Mon, 21 Mar 2016 15:22:00 -0000 Message-Id: <1458573675-15478-14-git-send-email-palves@redhat.com> In-Reply-To: <1458573675-15478-1-git-send-email-palves@redhat.com> References: <1458573675-15478-1-git-send-email-palves@redhat.com> X-SW-Source: 2016-03/txt/msg00395.txt.bz2 This makes target events always be always processed with the main UI as current UI. This way, warnings, debug output, etc. are always consistently sent to the main console. --- gdb/event-top.c | 2 +- gdb/infrun.c | 6 ++++++ gdb/top.h | 2 ++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gdb/event-top.c b/gdb/event-top.c index 964edff..63f15c5 100644 --- a/gdb/event-top.c +++ b/gdb/event-top.c @@ -376,7 +376,7 @@ struct ui *main_ui = &main_ui_; struct ui *current_ui = &main_ui_; struct ui *ui_list = &main_ui_; -static void +void restore_ui_cleanup (void *data) { current_ui = (struct ui *) data; diff --git a/gdb/infrun.c b/gdb/infrun.c index cfd072b..b6524068 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -3868,6 +3868,12 @@ fetch_inferior_event (void *client_data) memset (ecs, 0, sizeof (*ecs)); + /* Events are always processed with the main UI as current UI. This + way, warnings, debug output, etc. are always consistently sent to + the main console. */ + make_cleanup (restore_ui_cleanup, current_ui); + current_ui = main_ui; + /* End up with readline processing input, if necessary. */ make_cleanup (reinstall_readline_callback_handler_cleanup, NULL); diff --git a/gdb/top.h b/gdb/top.h index 5967d73..de396a6 100644 --- a/gdb/top.h +++ b/gdb/top.h @@ -128,6 +128,8 @@ extern void switch_thru_all_uis_next (struct switch_thru_all_uis *state); switch_thru_all_uis_cond (&STATE); \ switch_thru_all_uis_next (&STATE)) \ +extern void restore_ui_cleanup (void *data); + /* From top.c. */ extern char *saved_command_line; extern int in_user_command; -- 2.5.0