From patchwork Sun Dec 17 19:50:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 82343 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 1C69D3857C4C for ; Sun, 17 Dec 2023 19:50:46 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta036.useast.a.cloudfilter.net (omta036.useast.a.cloudfilter.net [44.202.169.35]) by sourceware.org (Postfix) with ESMTPS id 072C93858CD1 for ; Sun, 17 Dec 2023 19:50:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 072C93858CD1 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 072C93858CD1 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=44.202.169.35 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842631; cv=none; b=bRJxaIXaRSZjbpwbmuM19ygUgFNwApTUl5q9AZFQQsPCSm/Wx4+cSUH2g6URnXGsXQkjMptwc4SFLwGNV+ZSHMS8biUIDxgOj/u18BHhgLAM/gC2lwi4VhNDI3AG1q9TX9db5/GYpMPLNYUaSIYjbB72eLYmBZ3W7+bILysISqw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842631; c=relaxed/simple; bh=JvPGDRIDZrWwQNsI7siaDKDwZuk6/u69f7h14YJHRcY=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=FwZgRdQcFSwWtO754+tWkQ+P+gefJMwWtXVzLqkwNkH0THGP+RBi/4gk5Pn6N9ipcYgOwdN6ypHSK93Cs3Z/YJNBqXzTI8PMRZEJcYBzeE2jQwbKPFBWnbPbHMAPjLoUADFMmwCwYUk8sq4uz1Mo1hne60Hfn+KDxpkVF5EDTIs= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-6003a.ext.cloudfilter.net ([10.0.30.151]) by cmsmtp with ESMTPS id EtYhrScOigpyEEx9hr7ugL; Sun, 17 Dec 2023 19:50:29 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id Ex9grAXRZAKScEx9gr4TFA; Sun, 17 Dec 2023 19:50:29 +0000 X-Authority-Analysis: v=2.4 cv=N6w6qkxB c=1 sm=1 tr=0 ts=657f5105 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=OWjo9vPv0XrRhIrVQ50Ab3nP57M=:19 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=IkcTkHD0fZMA:10 a=e2cXIFwxEfEA:10 a=Qbun_eYptAEA:10 a=vB3712ce6cqZwFONgb4A:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=AtzIpMJ5jKum7WWTRLVVzxXB551R6y5KQKLf8/EDi0k=; b=FaIACxeZCfv1ZmXRlOTsGM5iEE HcJASkLq0bYNBUjyYVSQNVtRD20wZ3Qt+vcVb/LXoYgaayjlw6N/eNY/BANOfAwKOcvuuS808KqGa tgOVOhB05Fwmcoz2oDV7gbudT; Received: from 71-211-161-25.hlrn.qwest.net ([71.211.161.25]:40716 helo=[192.168.0.21]) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1rEx9g-004MyY-1A for gdb-patches@sourceware.org; Sun, 17 Dec 2023 12:50:28 -0700 From: Tom Tromey Date: Sun, 17 Dec 2023 12:50:26 -0700 Subject: [PATCH 01/14] Use pop_back in tui_register_format MIME-Version: 1.0 Message-Id: <20231217-tui-regs-cleanup-v1-1-67bd0ea1e8be@tromey.com> References: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> In-Reply-To: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.4 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 71.211.161.25 X-Source-L: No X-Exim-ID: 1rEx9g-004MyY-1A X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 71-211-161-25.hlrn.qwest.net ([192.168.0.21]) [71.211.161.25]:40716 X-Source-Auth: tom+tromey.com X-Email-Count: 2 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfCyNwDVLM2az7RgcLf4daAxZEsFnIL9B7UVwBQitBR0ItoR69KKQ381snNmxrOeZYgu9aUG9+QECeg2H9Qk3kkf9sCvgmcLsGhzIf6tpu+X+P+HS3bA5 QkmEQoIrjEXfTHv2L8+akEHQfNLqNhfTYSAtHTlXmMEY7/4d0c/XkHdzVmDgPesXKqewq8USE38r8GuD47CUN2G+Caao38KMyFA= X-Spam-Status: No, score=-3022.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, 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.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org tui_register_format can use string::pop_back now. --- gdb/tui/tui-regs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c index 4ed3a2ee88e..6aabae23e69 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -96,7 +96,7 @@ tui_register_format (frame_info_ptr frame, int regnum) /* Remove the possible \n. */ std::string str = stream.release (); if (!str.empty () && str.back () == '\n') - str.resize (str.size () - 1); + str.pop_back (); return str; } From patchwork Sun Dec 17 19:50:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 82345 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 25ADA38582B6 for ; Sun, 17 Dec 2023 19:51:02 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta34.uswest2.a.cloudfilter.net (omta34.uswest2.a.cloudfilter.net [35.89.44.33]) by sourceware.org (Postfix) with ESMTPS id 721A63858C42 for ; Sun, 17 Dec 2023 19:50:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 721A63858C42 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 721A63858C42 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=35.89.44.33 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842631; cv=none; b=OSUpOMg32IZ9BKYzVbrdlXKJBX4yQ/Ok1iTspg09kYu+XUBgpRxRup8X8JumABf5gmJM/1ce23chgtPsoQo8Rj2ZtjjOIAHAWQX6lYubGW6A6GNHfCFnLQQg4+8UtDKKV8aUjGuLNMnD2h5Un1MYef/2HY3FrNxN8ef3RdTzCHc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842631; c=relaxed/simple; bh=4Lm2er4kMg+Lc6NprM8uX4XENR7AySUfpbowy5m3x3Q=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=D1Dpuxq1+tfTfewkR1898+/LlKjZE+T1+sjqTLRE0Sl+kPG5c1PH2IMIuM8MdPibbzsTsAX5/EoW8zubifDMIu0BEXrkcgHX2ibjq0cFMzCvIevD5vgkhDTgk9E+aHoDP0BBjDPOshl1BTZuBDMYqRLeolfBlb4iiggZnszy/Jk= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-6009a.ext.cloudfilter.net ([10.0.30.184]) by cmsmtp with ESMTPS id EqAgrbmbQ8HteEx9hr8G0m; Sun, 17 Dec 2023 19:50:29 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id Ex9grXMZhBOccEx9grZZFp; Sun, 17 Dec 2023 19:50:29 +0000 X-Authority-Analysis: v=2.4 cv=J+25USrS c=1 sm=1 tr=0 ts=657f5105 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=OWjo9vPv0XrRhIrVQ50Ab3nP57M=:19 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=IkcTkHD0fZMA:10 a=e2cXIFwxEfEA:10 a=Qbun_eYptAEA:10 a=KTarSb8FPFGiWbvvr6AA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=8m9ckqmewO0WRJYtwC2OUK3N3OB1COLxCTJT1mNyu0c=; b=qwlqbwFj16j90evrVcZBUXv4C4 KxUnESE5R1oLb2BsnjhFE//Ra3OYg+ola4DkeGguHzJzbuuck6GfhjG+jh+JSLw0ixe7Ytn/2YUgW eKvxABFei7qetY9gjaWRIJp/Q; Received: from 71-211-161-25.hlrn.qwest.net ([71.211.161.25]:40716 helo=[192.168.0.21]) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1rEx9g-004MyY-1i for gdb-patches@sourceware.org; Sun, 17 Dec 2023 12:50:28 -0700 From: Tom Tromey Date: Sun, 17 Dec 2023 12:50:27 -0700 Subject: [PATCH 02/14] Minor C++ cleanups in tui-regs.c MIME-Version: 1.0 Message-Id: <20231217-tui-regs-cleanup-v1-2-67bd0ea1e8be@tromey.com> References: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> In-Reply-To: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.4 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 71.211.161.25 X-Source-L: No X-Exim-ID: 1rEx9g-004MyY-1i X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 71-211-161-25.hlrn.qwest.net ([192.168.0.21]) [71.211.161.25]:40716 X-Source-Auth: tom+tromey.com X-Email-Count: 3 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfD+ftO7MiWJbJ80mjbGOWXi7I37Sq2ViiACV9CW4fAzr6VCVDtn3OR8j9SfAp6Uk61fpVjdwd272a3XvttFU1Hto6XB8B5zSx6fbF6hzHnob7bDaPtbp UlZNuQTMAcolo2HCA8ehb4csdbxdju++6qx5/REgZ9u8khd0Bb4WHsgwybZfbS3qBPO/y7jOVUntU8olwJqwRSmggJko+5xt5EU= X-Spam-Status: No, score=-3022.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_MSPIKE_H2, 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.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org This changes a couple of spots to use nullptr rather than 0, and changes an int to a bool. --- gdb/tui/tui-regs.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c index 6aabae23e69..91fbf75c250 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -173,7 +173,7 @@ tui_data_window::first_reg_element_no_inline (int line_no) const void tui_data_window::show_registers (const reggroup *group) { - if (group == 0) + if (group == nullptr) group = general_reggroup; if (target_has_registers () && target_has_stack () && target_has_memory ()) @@ -188,7 +188,7 @@ tui_data_window::show_registers (const reggroup *group) } else { - m_current_group = 0; + m_current_group = nullptr; m_regs_content.clear (); } @@ -472,9 +472,7 @@ tui_data_window::check_register_values (frame_info_ptr frame) { for (auto &&data_item_win : m_regs_content) { - int was_hilighted; - - was_hilighted = data_item_win.highlight; + bool was_hilighted = data_item_win.highlight; tui_get_register (frame, &data_item_win, data_item_win.regno, From patchwork Sun Dec 17 19:50:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 82352 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 75E433858028 for ; Sun, 17 Dec 2023 19:51:45 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta40.uswest2.a.cloudfilter.net (omta40.uswest2.a.cloudfilter.net [35.89.44.39]) by sourceware.org (Postfix) with ESMTPS id 60D97385842F for ; Sun, 17 Dec 2023 19:50:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 60D97385842F Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 60D97385842F Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=35.89.44.39 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842635; cv=none; b=CP82+THEyY1+k/5tP4scVoGw7WOLL8gaLT/XIa+vp8kW7eH28UVO/oATTfNXCLZK0cIOgtwB2QRfPj06ModHgap3Shq1mQ3pRl+uHigALVas1Mu+G3Uly8d+YzVkA/Rp3KOz47jT9/lwXXxv6K4GvL8i8QSGpDuKxeaCcIzd0po= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842635; c=relaxed/simple; bh=sJYezDT9vtfZfdHMgBtazfTugngmCuyHjsNzLRaGpZ4=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=K91YnOT9InCUrr6FVPZdgtqBLEHN6SPp07SvA1LFtH8+5qMiwkomoX0O6mx7yzNanAg78sle8QT1OXwqV4pcjjIz2pSKL5VyIQTCs85rY0Qr5EqSOtlBm+sBqYvXZjTjz38WXGtzuFOEhXVsYerULHg6MBqAscvrXfWlpH4+D9Q= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-5006a.ext.cloudfilter.net ([10.0.29.179]) by cmsmtp with ESMTPS id EAyvrb02jL9AgEx9irX1Xc; Sun, 17 Dec 2023 19:50:30 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id Ex9grzz1y1J28Ex9hrZaOo; Sun, 17 Dec 2023 19:50:29 +0000 X-Authority-Analysis: v=2.4 cv=Tqz1ORbh c=1 sm=1 tr=0 ts=657f5105 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=OWjo9vPv0XrRhIrVQ50Ab3nP57M=:19 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=IkcTkHD0fZMA:10 a=e2cXIFwxEfEA:10 a=Qbun_eYptAEA:10 a=fZMDrX1XKuidMsmcEdAA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=zYaJyu+98aiq4WTtQUpPXJ3p+SSXqEr7qiMM3BZzwAo=; b=oyX3U4KAMmFgFS7ackL4Iay6/e H7DbdfBeEkGsnt7I06ZsoYn3J/jlKlSM3eAYOQ+Wdq5smBj74l58w2yvNQrNAY9pi+bMdJ6gSb2B5 OKjPTy/pQ9HZBUjEx6In14Rt3; Received: from 71-211-161-25.hlrn.qwest.net ([71.211.161.25]:40716 helo=[192.168.0.21]) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1rEx9g-004MyY-25 for gdb-patches@sourceware.org; Sun, 17 Dec 2023 12:50:28 -0700 From: Tom Tromey Date: Sun, 17 Dec 2023 12:50:28 -0700 Subject: [PATCH 03/14] Simplify tui_data_window::show_register_group MIME-Version: 1.0 Message-Id: <20231217-tui-regs-cleanup-v1-3-67bd0ea1e8be@tromey.com> References: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> In-Reply-To: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.4 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 71.211.161.25 X-Source-L: No X-Exim-ID: 1rEx9g-004MyY-25 X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 71-211-161-25.hlrn.qwest.net ([192.168.0.21]) [71.211.161.25]:40716 X-Source-Auth: tom+tromey.com X-Email-Count: 4 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfF30Zy/XjvQ3c+qsQDNFPRIZ8sarGRu+xYst0mAGKcOFD+BY74lcPDeeYHHnt1UdDUk/iPaAKgFlcXOrg00f8uaBjNyfvLwQymqtMCqQwY1FV64PBkaF JvqMyXxJ0zDwTh3uVwLZCqJbzHEGC0GiQZfgIH3SIEAL6CDMECjihpUngxvBAbkclV3kfBi1qfRUgCX1LbznrpD8KUsXElRPI+8= X-Spam-Status: No, score=-3022.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_MSPIKE_H2, 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.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org This simplifies tui_data_window::show_register_group, renaming it as well. The old method had two loops to iterate over all the registers for the arch, but in the new scheme, the vector is set up when switching groups, and then updates simply iterate over the vector. tui_data_item_window is made self-updating, which also clarifies the code somewhat. --- gdb/tui/tui-regs.c | 104 ++++++++++++++++++++--------------------------------- gdb/tui/tui-regs.h | 16 ++++++--- 2 files changed, 49 insertions(+), 71 deletions(-) diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c index 91fbf75c250..7b8bf323f50 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -104,21 +104,17 @@ tui_register_format (frame_info_ptr frame, int regnum) /* Get the register value from the given frame and format it for the display. When changedp is set, check if the new register value has changed with respect to the previous call. */ -static void -tui_get_register (frame_info_ptr frame, - struct tui_data_item_window *data, - int regnum, bool *changedp) +void +tui_data_item_window::update (const frame_info_ptr &frame) { - if (changedp) - *changedp = false; if (target_has_registers ()) { - std::string new_content = tui_register_format (frame, regnum); + std::string new_content = tui_register_format (frame, regno); - if (changedp != NULL && data->content != new_content) - *changedp = true; + if (content != new_content) + highlight = true; - data->content = std::move (new_content); + content = std::move (new_content); } } @@ -178,13 +174,11 @@ tui_data_window::show_registers (const reggroup *group) if (target_has_registers () && target_has_stack () && target_has_memory ()) { - show_register_group (group, get_selected_frame (NULL), - group == m_current_group); + update_register_data (group, get_selected_frame (NULL)); /* Clear all notation of changed values. */ for (auto &&data_item_win : m_regs_content) data_item_win.highlight = false; - m_current_group = group; } else { @@ -201,63 +195,43 @@ tui_data_window::show_registers (const reggroup *group) refresh_values_only is true. */ void -tui_data_window::show_register_group (const reggroup *group, - frame_info_ptr frame, - bool refresh_values_only) +tui_data_window::update_register_data (const reggroup *group, + frame_info_ptr frame) { - struct gdbarch *gdbarch = get_frame_arch (frame); - int nr_regs; - int regnum, pos; - - /* Make a new title showing which group we display. */ - this->set_title (string_printf ("Register group: %s", group->name ())); - - /* See how many registers must be displayed. */ - nr_regs = 0; - for (regnum = 0; regnum < gdbarch_num_cooked_regs (gdbarch); regnum++) + if (group != m_current_group) { - const char *name; - - /* Must be in the group. */ - if (!gdbarch_register_reggroup_p (gdbarch, regnum, group)) - continue; - - /* If the register name is empty, it is undefined for this - processor, so don't display anything. */ - name = gdbarch_register_name (gdbarch, regnum); - if (*name == '\0') - continue; - - nr_regs++; - } + m_current_group = group; - m_regs_content.resize (nr_regs); + /* Make a new title showing which group we display. */ + this->set_title (string_printf ("Register group: %s", group->name ())); - /* Now set the register names and values. */ - pos = 0; - for (regnum = 0; regnum < gdbarch_num_cooked_regs (gdbarch); regnum++) - { - struct tui_data_item_window *data_item_win; - const char *name; + /* Create the registers. */ + m_regs_content.clear (); - /* Must be in the group. */ - if (!gdbarch_register_reggroup_p (gdbarch, regnum, group)) - continue; + struct gdbarch *gdbarch = get_frame_arch (frame); + for (int regnum = 0; + regnum < gdbarch_num_cooked_regs (gdbarch); + regnum++) + { + /* Must be in the group. */ + if (!gdbarch_register_reggroup_p (gdbarch, regnum, group)) + continue; - /* If the register name is empty, it is undefined for this - processor, so don't display anything. */ - name = gdbarch_register_name (gdbarch, regnum); - if (*name == '\0') - continue; + /* If the register name is empty, it is undefined for this + processor, so don't display anything. */ + const char *name = gdbarch_register_name (gdbarch, regnum); + if (*name == '\0') + continue; - data_item_win = &m_regs_content[pos]; - if (!refresh_values_only) - { - data_item_win->regno = regnum; - data_item_win->highlight = false; + m_regs_content.emplace_back (regnum, frame); } - tui_get_register (frame, data_item_win, regnum, 0); - pos++; + } + else + { + /* The group did not change, so we can simply update each + item. */ + for (tui_data_item_window ® : m_regs_content) + reg.update (frame); } } @@ -470,13 +444,11 @@ tui_data_window::check_register_values (frame_info_ptr frame) show_registers (m_current_group); else { - for (auto &&data_item_win : m_regs_content) + for (tui_data_item_window &data_item_win : m_regs_content) { bool was_hilighted = data_item_win.highlight; - tui_get_register (frame, &data_item_win, - data_item_win.regno, - &data_item_win.highlight); + data_item_win.update (frame); /* Register windows whose y == 0 are outside the visible area. */ if ((data_item_win.highlight || was_hilighted) diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h index 1abd22cd382..9c451ba5996 100644 --- a/gdb/tui/tui-regs.h +++ b/gdb/tui/tui-regs.h @@ -29,19 +29,26 @@ struct tui_data_item_window { - tui_data_item_window () = default; + tui_data_item_window (int regno, const frame_info_ptr &frame) + : regno (regno) + { + update (frame); + highlight = false; + } DISABLE_COPY_AND_ASSIGN (tui_data_item_window); tui_data_item_window (tui_data_item_window &&) = default; + void update (const frame_info_ptr &frame); + void rerender (WINDOW *handle, int field_width); /* Location. */ int x = 0; int y = 0; /* The register number. */ - int regno = -1; + int regno; bool highlight = false; bool visible = false; std::string content; @@ -104,9 +111,8 @@ struct tui_data_window : public tui_win_info display off the end of the register display. */ void display_reg_element_at_line (int start_element_no, int start_line_no); - void show_register_group (const reggroup *group, - frame_info_ptr frame, - bool refresh_values_only); + void update_register_data (const reggroup *group, + frame_info_ptr frame); /* Answer the number of the last line in the regs display. If there are no registers (-1) is returned. */ From patchwork Sun Dec 17 19:50:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 82344 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 1B33938582BE for ; Sun, 17 Dec 2023 19:50:51 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta34.uswest2.a.cloudfilter.net (omta34.uswest2.a.cloudfilter.net [35.89.44.33]) by sourceware.org (Postfix) with ESMTPS id 76D833858C50 for ; Sun, 17 Dec 2023 19:50:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 76D833858C50 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 76D833858C50 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=35.89.44.33 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842632; cv=none; b=MvxJNekvFj1HRwecpwK39IyOLEXE2CsJEdjEPsadzgychpZqxyTGkLKlHu2U/e6gv9WO75yCzor3J96oUgkTAtVn5GprfLIz54vE6UeJ27r9iw0EGDWKczyb+0YmEhQQfQ/Shdr+fD18mXB9KsmwHDhBElcwukKcitSUYNmtnbs= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842632; c=relaxed/simple; bh=89bEqlpVGw8Mk3TOATan8gccMHFrLxnFTXcbV6eNoYY=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=hvGoXslJR3ucEjqUX9TBK5eMkV4TZEmeplxpNrWXulVHLwupRScApdSiNT4EByeHXF+5IJ4vX+d0xQ3oO/7xqiXwjqZIFSC9jRp71fkubEkH3az8rXWLu3tsEsuq6xQDgBJZOsUW8xTCX+zeWdHmlCZs2CzcI2kdhCLdWFV5SUk= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-6004a.ext.cloudfilter.net ([10.0.30.197]) by cmsmtp with ESMTPS id EuoJrcTMy8HteEx9hr8G0p; Sun, 17 Dec 2023 19:50:29 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id Ex9gr5w5oRGmSEx9hrM1eQ; Sun, 17 Dec 2023 19:50:29 +0000 X-Authority-Analysis: v=2.4 cv=efcuwpIH c=1 sm=1 tr=0 ts=657f5105 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=OWjo9vPv0XrRhIrVQ50Ab3nP57M=:19 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=IkcTkHD0fZMA:10 a=e2cXIFwxEfEA:10 a=Qbun_eYptAEA:10 a=YbGixuDaje6vAT3NmwgA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=XsvnadItiiPBRmMBHTonwC5mzm6jwRG8t3PEsnqBcgU=; b=FTe9p0eYNYTr9leykyPGS1KwWO iYcR5azyihy0THPcMn14/Gh7PBEnU0oPWoDr1J+xcFZi2g9MOU8EW9N24xnK0O0fzVDor04ThNfQ2 0Xyxh7M/pb0i954UuYIPAkUF0; Received: from 71-211-161-25.hlrn.qwest.net ([71.211.161.25]:40716 helo=[192.168.0.21]) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1rEx9g-004MyY-2W for gdb-patches@sourceware.org; Sun, 17 Dec 2023 12:50:28 -0700 From: Tom Tromey Date: Sun, 17 Dec 2023 12:50:29 -0700 Subject: [PATCH 04/14] Rename tui_data_item_window -> tui_register_info MIME-Version: 1.0 Message-Id: <20231217-tui-regs-cleanup-v1-4-67bd0ea1e8be@tromey.com> References: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> In-Reply-To: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.4 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 71.211.161.25 X-Source-L: No X-Exim-ID: 1rEx9g-004MyY-2W X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 71-211-161-25.hlrn.qwest.net ([192.168.0.21]) [71.211.161.25]:40716 X-Source-Auth: tom+tromey.com X-Email-Count: 5 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfNO1VPYslHoT7oVwv+PwMZuVh+DreDnYgiWabYZ5qu+pfXq7TVDmDU8Sg7QcGvMgia9Wj9bLUlxP28lnXK+3YtcZj0umigle1lhCJsAmRlZQ9AetAopA z78RCKAKRSJ7lMZCztYaRXre2d40n8hPLo+kPHT59gICBMZrOJk4bbaMwS+Gb9vDEVRkR//N9VY0DmxRGLpW9eHFXNq3kMry7J0= X-Spam-Status: No, score=-3022.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_MSPIKE_H2, 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.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org tui_data_item_window used to hold a curses window, but we removed that ages ago. Now it just holds information about a single register. This patch renames the class to make it more clearly reflect its meaning. --- gdb/tui/tui-regs.c | 13 +++++-------- gdb/tui/tui-regs.h | 14 +++++++------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c index 7b8bf323f50..f87d1ff8721 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -105,15 +105,12 @@ tui_register_format (frame_info_ptr frame, int regnum) display. When changedp is set, check if the new register value has changed with respect to the previous call. */ void -tui_data_item_window::update (const frame_info_ptr &frame) +tui_register_info::update (const frame_info_ptr &frame) { if (target_has_registers ()) { std::string new_content = tui_register_format (frame, regno); - - if (content != new_content) - highlight = true; - + highlight = content != new_content; content = std::move (new_content); } } @@ -230,7 +227,7 @@ tui_data_window::update_register_data (const reggroup *group, { /* The group did not change, so we can simply update each item. */ - for (tui_data_item_window ® : m_regs_content) + for (tui_register_info ® : m_regs_content) reg.update (frame); } } @@ -444,7 +441,7 @@ tui_data_window::check_register_values (frame_info_ptr frame) show_registers (m_current_group); else { - for (tui_data_item_window &data_item_win : m_regs_content) + for (tui_register_info &data_item_win : m_regs_content) { bool was_hilighted = data_item_win.highlight; @@ -463,7 +460,7 @@ tui_data_window::check_register_values (frame_info_ptr frame) /* Display a register in a window. If hilite is TRUE, then the value will be displayed in reverse video. */ void -tui_data_item_window::rerender (WINDOW *handle, int field_width) +tui_register_info::rerender (WINDOW *handle, int field_width) { /* In case the regs window is not boxed, we'll write the last char in the last line here, causing a scroll, so prevent that. */ diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h index 9c451ba5996..1a9f30fa270 100644 --- a/gdb/tui/tui-regs.h +++ b/gdb/tui/tui-regs.h @@ -25,20 +25,20 @@ #include "tui/tui-data.h" #include "reggroups.h" -/* A data item window. */ +/* Information about the display of a single register. */ -struct tui_data_item_window +struct tui_register_info { - tui_data_item_window (int regno, const frame_info_ptr &frame) + tui_register_info (int regno, const frame_info_ptr &frame) : regno (regno) { update (frame); highlight = false; } - DISABLE_COPY_AND_ASSIGN (tui_data_item_window); + DISABLE_COPY_AND_ASSIGN (tui_register_info); - tui_data_item_window (tui_data_item_window &&) = default; + tui_register_info (tui_register_info &&) = default; void update (const frame_info_ptr &frame); @@ -133,8 +133,8 @@ struct tui_data_window : public tui_win_info void erase_data_content (const char *prompt); - /* Windows that are used to display registers. */ - std::vector m_regs_content; + /* Information about each register in the current register group. */ + std::vector m_regs_content; int m_regs_column_count = 0; const reggroup *m_current_group = nullptr; From patchwork Sun Dec 17 19:50:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 82346 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B3FDD385801C for ; Sun, 17 Dec 2023 19:51:11 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta034.useast.a.cloudfilter.net (omta034.useast.a.cloudfilter.net [44.202.169.33]) by sourceware.org (Postfix) with ESMTPS id AC4413858418 for ; Sun, 17 Dec 2023 19:50:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AC4413858418 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org AC4413858418 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=44.202.169.33 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842632; cv=none; b=hGQly992C2xKgpEsJXur3TpKd26p3HvBaU97+XpRsJAN2CVvomk5NbqMxYcR6ACZo6NyATM5HUWCAhW+GGsaqcg9IOVZix/Smu6FhIFMNbRCGjFT8aI0DqjtZ6147PvKQnDrMMnr6GU3BtoyIhdqkGNIwIigtavWLRYJbEaztH0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842632; c=relaxed/simple; bh=Dp1AgLs5A1m63CiEn2URGK4kQh4sC9/M+HPkglg0Hjo=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=lbJGIBDEBWIXrj+VZS/obR/liiOtN6l8edSWgmgiw7rhlMOSfgBRbDkoljF7GIwzSzkCY4Dw+bP+g6tWkBc4Sfg7FE7JT6aMvIx+PzdXUJJ2A/rAXJ/wIKnGEgxF2mh2R1JctCXtabPEq/AF8rpAcDfkYcR3TczlFi7pwa3WFzM= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-5009a.ext.cloudfilter.net ([10.0.29.176]) by cmsmtp with ESMTPS id EvR1rfQd2jtZ3Ex9srNcEJ; Sun, 17 Dec 2023 19:50:40 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id Ex9hr9fHM97pzEx9hryMbc; Sun, 17 Dec 2023 19:50:29 +0000 X-Authority-Analysis: v=2.4 cv=ULDOoQTy c=1 sm=1 tr=0 ts=657f5105 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=OWjo9vPv0XrRhIrVQ50Ab3nP57M=:19 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=IkcTkHD0fZMA:10 a=e2cXIFwxEfEA:10 a=Qbun_eYptAEA:10 a=iLAp2z0k3MDhuBEexi4A:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=wz+AKpUrYvVWr2L3xi0JpPBVvxGNHO5t/rw9IGbQtLs=; b=RQpyZc9oJe4k4lOVVJpsdNGS1n pE3FtV+HO/KBHaK/ItHaN5fmBa3FTjXB8K5hkwE+O6ZJbm9CT8NL4a9EtGk8zPIMBqgJRB2WJ3RCj cyv8YwwZRkxjd+bb3NbRBfTN9; Received: from 71-211-161-25.hlrn.qwest.net ([71.211.161.25]:40716 helo=[192.168.0.21]) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1rEx9g-004MyY-2z for gdb-patches@sourceware.org; Sun, 17 Dec 2023 12:50:28 -0700 From: Tom Tromey Date: Sun, 17 Dec 2023 12:50:30 -0700 Subject: [PATCH 05/14] Remove tui_register_info::visible MIME-Version: 1.0 Message-Id: <20231217-tui-regs-cleanup-v1-5-67bd0ea1e8be@tromey.com> References: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> In-Reply-To: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.4 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 71.211.161.25 X-Source-L: No X-Exim-ID: 1rEx9g-004MyY-2z X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 71-211-161-25.hlrn.qwest.net ([192.168.0.21]) [71.211.161.25]:40716 X-Source-Auth: tom+tromey.com X-Email-Count: 6 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfDmC23CQIoAWmmTcamYAWPp9tO8o8JgBEPXTLE5ZVUwPCPlKGlqZ5a0XVIkO3EL5xP8X/Bb8063T8WZu44Pkqy3V5faKRv8ee6GDY+UAdSm/fMeMMw+C N5mjs4d7NNsJKxrsE3w3a3r5eA2/Wq5vA9/agzv+BinIk2hdwd8VUVKLJ8xwN3bPzJxTYTR5T70/wFpG6pgTCb5hYYfoGOf0XYk= X-Spam-Status: No, score=-3022.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, 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.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org tui_register_info::visible is redundant with the fact that y==0 means that the register is not visible -- and some spots already check the latter. This patch removes this member in favor of having a single indication of the register's visibility. This change makes it clear that delete_data_content_windows is not needed, so this is removed as well. --- gdb/tui/tui-regs.c | 15 +-------------- gdb/tui/tui-regs.h | 1 - 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c index f87d1ff8721..9108e460d6f 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -269,7 +269,6 @@ tui_data_window::display_registers_from (int start_element_no) /* Create the window if necessary. */ m_regs_content[i].x = box_width () + (m_item_width * j); m_regs_content[i].y = cur_y; - m_regs_content[i].visible = true; m_regs_content[i].rerender (handle.get (), m_item_width); i++; /* Next register. */ } @@ -347,23 +346,13 @@ tui_data_window::first_data_item_displayed () { for (int i = 0; i < m_regs_content.size (); i++) { - if (m_regs_content[i].visible) + if (m_regs_content[i].y > 0) return i; } return -1; } -/* See tui-regs.h. */ - -void -tui_data_window::delete_data_content_windows () -{ - for (auto &win : m_regs_content) - win.visible = false; -} - - void tui_data_window::erase_data_content (const char *prompt) { @@ -401,7 +390,6 @@ tui_data_window::rerender (bool toplevel) else { erase_data_content (NULL); - delete_data_content_windows (); display_registers_from (0); } } @@ -426,7 +414,6 @@ tui_data_window::do_scroll_vertical (int num_to_scroll) { first_line += num_to_scroll; erase_data_content (NULL); - delete_data_content_windows (); display_registers_from_line (first_line); } } diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h index 1a9f30fa270..701b8707947 100644 --- a/gdb/tui/tui-regs.h +++ b/gdb/tui/tui-regs.h @@ -50,7 +50,6 @@ struct tui_register_info /* The register number. */ int regno; bool highlight = false; - bool visible = false; std::string content; }; From patchwork Sun Dec 17 19:50:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 82354 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 43CC938582BA for ; Sun, 17 Dec 2023 19:51:59 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta038.useast.a.cloudfilter.net (omta038.useast.a.cloudfilter.net [44.202.169.37]) by sourceware.org (Postfix) with ESMTPS id B01BC385841D for ; Sun, 17 Dec 2023 19:50:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B01BC385841D Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org B01BC385841D Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=44.202.169.37 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842633; cv=none; b=dTII9OCKEgF0JqnEIwVoLkFyykoLNS9Iy67Cilmu0tuEqP89Ldv+lUzsDfR4ZxYTeLL0tzgIMamFvOvSR5izvn4Eb1iFBl1QEU8STSOBcJr/YSdTGxiVYpJrXW2H+HHVbqm25RDUBxfOsv1GJwnYxFmdCORtjbM0tSxAOqrnSE8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842633; c=relaxed/simple; bh=CThhGGkWU7dxmPBPAbReW8tJXgAqE6JfdxPixWjmlHI=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=cMi2lQMa6I0QIzZYW7C9dDyMGHyb6iO2NQ2mQT7Y1KkNRWNn6KYscQ5zycQ/Yle/g5Z9cVRMFMj63CH8WbU2lqsLPDMmyDZZ/f/Q9pNrJaS/w0AtQFk6YeW0asdqN4rPT/jJPoaEcoJm06177+11Zd/zvflPU4DljSWqWD9B3cQ= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-5009a.ext.cloudfilter.net ([10.0.29.176]) by cmsmtp with ESMTPS id ErUurzjl1WcCIEx9irQEBp; Sun, 17 Dec 2023 19:50:30 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id Ex9hr9fHO97pzEx9hryMbf; Sun, 17 Dec 2023 19:50:29 +0000 X-Authority-Analysis: v=2.4 cv=ULDOoQTy c=1 sm=1 tr=0 ts=657f5105 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=OWjo9vPv0XrRhIrVQ50Ab3nP57M=:19 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=IkcTkHD0fZMA:10 a=e2cXIFwxEfEA:10 a=Qbun_eYptAEA:10 a=r1LDTmaU-BkirJkVBcIA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=BFumwIIs9jEoZM83Kf20vx6pPMY4rLFzrBwtRzTcuHw=; b=RUC1TaYu0g7935beJ0kv4HRIYR qSnRC/zk+mR7/m+XEOM69lguNnBI4qFL+laFWjg9ld1UKHcW+6Vy012Ox3I+/pxvlqHNvA9oaqrqe CXNcfw5pLgJ5Q9KpLdcWnbes9; Received: from 71-211-161-25.hlrn.qwest.net ([71.211.161.25]:40716 helo=[192.168.0.21]) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1rEx9h-004MyY-0C for gdb-patches@sourceware.org; Sun, 17 Dec 2023 12:50:29 -0700 From: Tom Tromey Date: Sun, 17 Dec 2023 12:50:31 -0700 Subject: [PATCH 06/14] Move scrollok call in register window MIME-Version: 1.0 Message-Id: <20231217-tui-regs-cleanup-v1-6-67bd0ea1e8be@tromey.com> References: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> In-Reply-To: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.4 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 71.211.161.25 X-Source-L: No X-Exim-ID: 1rEx9h-004MyY-0C X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 71-211-161-25.hlrn.qwest.net ([192.168.0.21]) [71.211.161.25]:40716 X-Source-Auth: tom+tromey.com X-Email-Count: 7 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfDmC23CQIoAWmmTcamYAWPp9tO8o8JgBEPXTLE5ZVUwPCPlKGlqZ5a0XVIkO3EL5xP8X/Bb8063T8WZu44Pkqy3V5faKRv8ee6GDY+UAdSm/fMeMMw+C N5mjs4d7NNsJKxrsE3w3a3r5eA2/Wq5vA9/agzv+BinIk2hdwd8VUVKLJ8xwN3bPzJxTYTR5T70/wFpG6pgTCb5hYYfoGOf0XYk= X-Spam-Status: No, score=-3022.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, 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.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org The register window calls scrollok each time a register is written to the window. However, we only need to call this once, at the start of display. (We could actually call it just once when the window is made, but that would involve making another method virtual or adding a new member -- both which I think are worse than this approach.) --- gdb/tui/tui-regs.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c index 9108e460d6f..0ad23e93778 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -237,6 +237,10 @@ tui_data_window::update_register_data (const reggroup *group, void tui_data_window::display_registers_from (int start_element_no) { + /* In case the regs window is not boxed, we'll write the last char in the + last line here, causing a scroll, so prevent that. */ + scrollok (handle.get (), FALSE); + int max_len = 0; for (auto &&data_item_win : m_regs_content) { @@ -449,10 +453,6 @@ tui_data_window::check_register_values (frame_info_ptr frame) void tui_register_info::rerender (WINDOW *handle, int field_width) { - /* In case the regs window is not boxed, we'll write the last char in the - last line here, causing a scroll, so prevent that. */ - scrollok (handle, FALSE); - if (highlight) /* We ignore the return value, casting it to void in order to avoid a compiler warning. The warning itself was introduced by a patch From patchwork Sun Dec 17 19:50:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 82347 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 12CA838582A9 for ; Sun, 17 Dec 2023 19:51:15 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta38.uswest2.a.cloudfilter.net (omta38.uswest2.a.cloudfilter.net [35.89.44.37]) by sourceware.org (Postfix) with ESMTPS id F340F3858425 for ; Sun, 17 Dec 2023 19:50:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org F340F3858425 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org F340F3858425 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=35.89.44.37 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842633; cv=none; b=eqOzQb5XEwdMElx1hlqj858EykFSUgdTDm9kQDj/zhT3/T4orPirJxm9IGt3Qsy2eounWaisVVCawpwTs0+pSlc2KlJcLqfYgxNWWkm36kF0AO9Yz84FPCOs6wk28+v1wXptt+MTDrxodHISNHvHirD9gpjqgWN5Qx1i9f/IDzA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842633; c=relaxed/simple; bh=P+HYvb1o/Bb5RO4LSGsxHnBMSeWLbNmxcxcIiR2+NP8=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=RwteQBA20SL7LtamFkPKlS1KfKZS/+Ti36W4IxFWcxkBWC33QBDuj3r81P1yt/CjbK38I5ALdfkEVI7yykbRYqcosLV1ACE6rFFy8AOQllGY/zcOMVicQsCT92ynFqSKO4GWcNqfox0XxWIj9Q83P3qoZf0a3eU6y7c8bWy6OFY= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-6008a.ext.cloudfilter.net ([10.0.30.227]) by cmsmtp with ESMTPS id EaMNruMUVVly7Ex9irVgXn; Sun, 17 Dec 2023 19:50:30 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id Ex9hrfL0I0xkrEx9hrQ2Nk; Sun, 17 Dec 2023 19:50:29 +0000 X-Authority-Analysis: v=2.4 cv=N7U6qkxB c=1 sm=1 tr=0 ts=657f5105 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=OWjo9vPv0XrRhIrVQ50Ab3nP57M=:19 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=IkcTkHD0fZMA:10 a=e2cXIFwxEfEA:10 a=Qbun_eYptAEA:10 a=B7IstzJxFylA577eagYA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=vyQo4qp0qhzer8/oUd65tpjHR4OPTQY/DdpX7ROXPg0=; b=oQwPg8+9BznVDSEEGhnjF4SreI ezmtQrabLNgHn/7ld1xXGPdhgl8kG3Nn7XdbSJ61ur+G03NuWowYLKWMNJ2O7PoC8oIj62HBV6zz0 IYZOgDJl7xtOBSgNfLrljXbXT; Received: from 71-211-161-25.hlrn.qwest.net ([71.211.161.25]:40716 helo=[192.168.0.21]) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1rEx9h-004MyY-0d for gdb-patches@sourceware.org; Sun, 17 Dec 2023 12:50:29 -0700 From: Tom Tromey Date: Sun, 17 Dec 2023 12:50:32 -0700 Subject: [PATCH 07/14] Simplify update_register_data MIME-Version: 1.0 Message-Id: <20231217-tui-regs-cleanup-v1-7-67bd0ea1e8be@tromey.com> References: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> In-Reply-To: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.4 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 71.211.161.25 X-Source-L: No X-Exim-ID: 1rEx9h-004MyY-0d X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 71-211-161-25.hlrn.qwest.net ([192.168.0.21]) [71.211.161.25]:40716 X-Source-Auth: tom+tromey.com X-Email-Count: 8 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfPHVKYzNSBWZyPUiapVMpPdBDmFNYWUqw0H7Kckwn7llez9KhXFNS5uj+rnqerlpURAsxO4/Yjvfuui1OJL5vBllWA6MCsWjXMV4ffQVOF1q3xOBtxyn qqVpgnC2Os2t+3tt2sSVBO6KLpJoIzT1nNdjsOvp7XbjAbUxILcYgs0KgN4nd+IRwHvm+BmV4FdrXVm+Y3BKvVNVr+dECxOrTHw= X-Spam-Status: No, score=-3022.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_MSPIKE_H2, 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.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org This changes update_register_data to always update the register data. The idea here is that this is really only called when either the desired register group changes, or when gdb transitions from not having a frame to having a frame. show_registers is also simplified slightly to account for this. --- gdb/tui/tui-regs.c | 57 ++++++++++++++++++++---------------------------------- 1 file changed, 21 insertions(+), 36 deletions(-) diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c index 0ad23e93778..7b6b669fe51 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -170,15 +170,10 @@ tui_data_window::show_registers (const reggroup *group) group = general_reggroup; if (target_has_registers () && target_has_stack () && target_has_memory ()) - { - update_register_data (group, get_selected_frame (NULL)); - - /* Clear all notation of changed values. */ - for (auto &&data_item_win : m_regs_content) - data_item_win.highlight = false; - } + update_register_data (group, get_selected_frame (nullptr)); else { + set_title (_("Registers")); m_current_group = nullptr; m_regs_content.clear (); } @@ -195,40 +190,30 @@ void tui_data_window::update_register_data (const reggroup *group, frame_info_ptr frame) { - if (group != m_current_group) - { - m_current_group = group; + m_current_group = group; - /* Make a new title showing which group we display. */ - this->set_title (string_printf ("Register group: %s", group->name ())); + /* Make a new title showing which group we display. */ + this->set_title (string_printf ("Register group: %s", group->name ())); - /* Create the registers. */ - m_regs_content.clear (); + /* Create the registers. */ + m_regs_content.clear (); - struct gdbarch *gdbarch = get_frame_arch (frame); - for (int regnum = 0; - regnum < gdbarch_num_cooked_regs (gdbarch); - regnum++) - { - /* Must be in the group. */ - if (!gdbarch_register_reggroup_p (gdbarch, regnum, group)) - continue; + struct gdbarch *gdbarch = get_frame_arch (frame); + for (int regnum = 0; + regnum < gdbarch_num_cooked_regs (gdbarch); + regnum++) + { + /* Must be in the group. */ + if (!gdbarch_register_reggroup_p (gdbarch, regnum, group)) + continue; - /* If the register name is empty, it is undefined for this - processor, so don't display anything. */ - const char *name = gdbarch_register_name (gdbarch, regnum); - if (*name == '\0') - continue; + /* If the register name is empty, it is undefined for this + processor, so don't display anything. */ + const char *name = gdbarch_register_name (gdbarch, regnum); + if (*name == '\0') + continue; - m_regs_content.emplace_back (regnum, frame); - } - } - else - { - /* The group did not change, so we can simply update each - item. */ - for (tui_register_info ® : m_regs_content) - reg.update (frame); + m_regs_content.emplace_back (regnum, frame); } } From patchwork Sun Dec 17 19:50:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 82355 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 5EE613858289 for ; Sun, 17 Dec 2023 19:52:09 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta40.uswest2.a.cloudfilter.net (omta40.uswest2.a.cloudfilter.net [35.89.44.39]) by sourceware.org (Postfix) with ESMTPS id 638783858435 for ; Sun, 17 Dec 2023 19:50:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 638783858435 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 638783858435 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=35.89.44.39 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842635; cv=none; b=UjrMphNr80rDBoGm1UHuTDdiOJ4NezWcx9QY7LacWFdieqymGjSG1zpQ23z9hAT63yhd6scySqovPfVsUeyLlkStseqJJZMaAq5mnIB3Q/ln6ynrFml4eVuBXeMW8TaN6vIku/SX93lznLlG3+8ieaEOBsAMxnxyTm/XirbcvCQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842635; c=relaxed/simple; bh=YVIf3izib50cPAAgPi3t/Blu349Cj6Hy5PBiLWlLrVs=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=ZqPMsNqA9nmPf/XyqFpaB6aKrtsPshFfx3BaNv2CrbzJYm8RzmtrZxoPNdgkbDteWjd9nZMbeZZj9lSu5cSZgGPR24+CB2AdMbtUIFFaLe0IJkUTeJi0I+H/yeC3+y7H5bNcld4Kr2FdJpZ+j6EGfwv/5gaScsl177nb1mdCNfk= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-6009a.ext.cloudfilter.net ([10.0.30.184]) by cmsmtp with ESMTPS id EuAMrifTtL9AgEx9hrX1Xa; Sun, 17 Dec 2023 19:50:29 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id Ex9hrXMa6BOccEx9hrZZGD; Sun, 17 Dec 2023 19:50:29 +0000 X-Authority-Analysis: v=2.4 cv=J+25USrS c=1 sm=1 tr=0 ts=657f5105 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=OWjo9vPv0XrRhIrVQ50Ab3nP57M=:19 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=IkcTkHD0fZMA:10 a=e2cXIFwxEfEA:10 a=Qbun_eYptAEA:10 a=S9GyxO0HTDeAskKyipIA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=jBnXXAeD4NvTcNHcognf5f9hvOTDb7kOLfeVKrfth+U=; b=AktgMRkr+27TdRvEf8mN8tluO7 kT4ta9M/UNwdr1gevebvXG37lPUqeI9zQKdcGjZqNoUmMCBee9zidIu5gGO0ibGhG1lQnjSjtFxGc voP3w81v4nAjFbnb2TEJoKbPv; Received: from 71-211-161-25.hlrn.qwest.net ([71.211.161.25]:40716 helo=[192.168.0.21]) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1rEx9h-004MyY-14 for gdb-patches@sourceware.org; Sun, 17 Dec 2023 12:50:29 -0700 From: Tom Tromey Date: Sun, 17 Dec 2023 12:50:33 -0700 Subject: [PATCH 08/14] Remove the TUI register window rerender overload MIME-Version: 1.0 Message-Id: <20231217-tui-regs-cleanup-v1-8-67bd0ea1e8be@tromey.com> References: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> In-Reply-To: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.4 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 71.211.161.25 X-Source-L: No X-Exim-ID: 1rEx9h-004MyY-14 X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 71-211-161-25.hlrn.qwest.net ([192.168.0.21]) [71.211.161.25]:40716 X-Source-Auth: tom+tromey.com X-Email-Count: 9 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfD+ftO7MiWJbJ80mjbGOWXi7I37Sq2ViiACV9CW4fAzr6VCVDtn3OR8j9SfAp6Uk61fpVjdwd272a3XvttFU1Hto6XB8B5zSx6fbF6hzHnob7bDaPtbp UlZNuQTMAcolo2HCA8ehb4csdbxdju++6qx5/REgZ9u8khd0Bb4WHsgwybZfbS3qBPO/y7jOVUntU8olwJqwRSmggJko+5xt5EU= X-Spam-Status: No, score=-3023.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_MSPIKE_H2, 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.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org After these restructurings, it should be clear that the rerender overload can be removed from the TUI register window. This is done by moving a bit more logic from show_registers into update_register_data. After this, update_register_data simply updates the internal state, and rerender will write to the screen. All the actual rendering work is done, ultimately, by display_registers_from. This split between updating the mode and rendering makes it clear that the recursive case can't happen any longer. --- gdb/tui/tui-regs.c | 55 ++++++++++++++++++++++++------------------------------ gdb/tui/tui-regs.h | 14 ++++++-------- 2 files changed, 30 insertions(+), 39 deletions(-) diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c index 7b6b669fe51..5726dc3fea8 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -165,31 +165,33 @@ tui_data_window::first_reg_element_no_inline (int line_no) const and refresh the window. */ void tui_data_window::show_registers (const reggroup *group) +{ + update_register_data (group); + rerender (); +} + +/* Set the data window to display the registers of the register group + using the given frame. Values are refreshed only when + refresh_values_only is true. */ + +void +tui_data_window::update_register_data (const reggroup *group) { if (group == nullptr) group = general_reggroup; - if (target_has_registers () && target_has_stack () && target_has_memory ()) - update_register_data (group, get_selected_frame (nullptr)); - else + if (!target_has_registers () + || !target_has_stack () + || !target_has_memory ()) { - set_title (_("Registers")); + set_title (""); m_current_group = nullptr; m_regs_content.clear (); + return; } - rerender (false); -} - - -/* Set the data window to display the registers of the register group - using the given frame. Values are refreshed only when - refresh_values_only is true. */ + frame_info_ptr frame = get_selected_frame (nullptr); -void -tui_data_window::update_register_data (const reggroup *group, - frame_info_ptr frame) -{ m_current_group = group; /* Make a new title showing which group we display. */ @@ -222,6 +224,9 @@ tui_data_window::update_register_data (const reggroup *group, void tui_data_window::display_registers_from (int start_element_no) { + werase (handle.get ()); + check_and_display_highlight_if_needed (); + /* In case the regs window is not boxed, we'll write the last char in the last line here, causing a scroll, so prevent that. */ scrollok (handle.get (), FALSE); @@ -358,29 +363,18 @@ tui_data_window::erase_data_content (const char *prompt) x_pos = half_width - strlen (prompt); display_string (height / 2, x_pos, prompt); } - tui_wrefresh (handle.get ()); } /* See tui-regs.h. */ void -tui_data_window::rerender (bool toplevel) +tui_data_window::rerender () { if (m_regs_content.empty ()) - { - if (toplevel && has_stack_frames ()) - { - frame_info_ptr fi = get_selected_frame (NULL); - check_register_values (fi); - } - else - erase_data_content (_("[ Register Values Unavailable ]")); - } + erase_data_content (_("[ Register Values Unavailable ]")); else - { - erase_data_content (NULL); - display_registers_from (0); - } + display_registers_from (0); + tui_wrefresh (handle.get ()); } @@ -402,7 +396,6 @@ tui_data_window::do_scroll_vertical (int num_to_scroll) if (first_line >= 0) { first_line += num_to_scroll; - erase_data_content (NULL); display_registers_from_line (first_line); } } diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h index 701b8707947..b31a5a3e5b8 100644 --- a/gdb/tui/tui-regs.h +++ b/gdb/tui/tui-regs.h @@ -56,7 +56,10 @@ struct tui_register_info /* The TUI registers window. */ struct tui_data_window : public tui_win_info { - tui_data_window () = default; + tui_data_window () + { + update_register_data (nullptr); + } DISABLE_COPY_AND_ASSIGN (tui_data_window); @@ -81,11 +84,7 @@ struct tui_data_window : public tui_win_info { } - void rerender (bool toplevel); - void rerender () override - { - rerender (true); - } + void rerender () override; private: @@ -110,8 +109,7 @@ struct tui_data_window : public tui_win_info display off the end of the register display. */ void display_reg_element_at_line (int start_element_no, int start_line_no); - void update_register_data (const reggroup *group, - frame_info_ptr frame); + void update_register_data (const reggroup *group); /* Answer the number of the last line in the regs display. If there are no registers (-1) is returned. */ From patchwork Sun Dec 17 19:50:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 82348 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id CCA45385801E for ; Sun, 17 Dec 2023 19:51:27 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta034.useast.a.cloudfilter.net (omta034.useast.a.cloudfilter.net [44.202.169.33]) by sourceware.org (Postfix) with ESMTPS id DF1C93858424 for ; Sun, 17 Dec 2023 19:50:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DF1C93858424 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org DF1C93858424 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=44.202.169.33 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842632; cv=none; b=w48lYZyoQXoD+1FU30+KBtPlYfbmfQMcuWSymCaD6JfJN5zWqYXXoUIHEEff+qwVRQHWOdDForYbtdYSVZN9DglinWqzq4/ct/J1b9GD39KFA6274/veyjEpSMSBfqS0PWuduo8EjB/VKOyk5TgUWHD+zDbDYEDULoccyDJvD88= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842632; c=relaxed/simple; bh=ey7yERQfeiQEZ0ksF3cxEy785GxzxY4N1uOP+9ubJUI=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=O6Fv31HXuna/B4VOgH82VOK4/SGAShF1QoUYcQ21Y+TrWrSSoP9ShMe/YOqP6FLJKb9gkFTLdON2ik+rOrPiT2Wh1m0+RzaS5LpiQwCbOSoDlFL64NsBVpOiK9EtT1klH3LVIodhzJGsJOoAD5viUGI+D4ZBLCcGTxVSQo4ANO8= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-5009a.ext.cloudfilter.net ([10.0.29.176]) by cmsmtp with ESMTPS id EvR1rfQd2jtZ3Ex9srNcEO; Sun, 17 Dec 2023 19:50:40 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id Ex9hr9fHf97pzEx9iryMbv; Sun, 17 Dec 2023 19:50:30 +0000 X-Authority-Analysis: v=2.4 cv=ULDOoQTy c=1 sm=1 tr=0 ts=657f5106 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=OWjo9vPv0XrRhIrVQ50Ab3nP57M=:19 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=IkcTkHD0fZMA:10 a=e2cXIFwxEfEA:10 a=Qbun_eYptAEA:10 a=l3qQevOvjjoXdUdkTKAA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=8rQKysR/LQio402y2w7yx7I+1U02i1x6oRGQInjfwss=; b=RER92lS1VpStEaK3P11qXWXRZE 4onm2oC7H9IYQft12eyEarvFb1Conptn6GGQxYMp76Mqjqb6Jf1HyxJOvOhWljeHC8O2rqS810DtT Cs162lilYK4FdtlB8rRwuhLMv; Received: from 71-211-161-25.hlrn.qwest.net ([71.211.161.25]:40716 helo=[192.168.0.21]) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1rEx9h-004MyY-1X for gdb-patches@sourceware.org; Sun, 17 Dec 2023 12:50:29 -0700 From: Tom Tromey Date: Sun, 17 Dec 2023 12:50:34 -0700 Subject: [PATCH 09/14] Simplify tui_data_win::erase_data_content MIME-Version: 1.0 Message-Id: <20231217-tui-regs-cleanup-v1-9-67bd0ea1e8be@tromey.com> References: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> In-Reply-To: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.4 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 71.211.161.25 X-Source-L: No X-Exim-ID: 1rEx9h-004MyY-1X X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 71-211-161-25.hlrn.qwest.net ([192.168.0.21]) [71.211.161.25]:40716 X-Source-Auth: tom+tromey.com X-Email-Count: 10 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfPmitwPqPWlCgCmprq47Fz4waz+oJaDlbezwgyUUnmnP0JnhpuqbKFbG4oUtuG//9JueSYeb1nBKrM4E41sazhybqGjuqh2XdbS6b9yhOArVuFFAcvzl 14ixwTX4Aq61O6FKRVU8lIETFTsutBUkGGZCzMRqmj5uOWidglU7+TFifIxYmOc8QKwzzGvcWYupofAMp7k0e7tcMq3HigBhC2Y= X-Spam-Status: No, score=-3022.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, 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.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org There's only a single call to tui_data_win::erase_data_content now, so remove the parameter and make it just render the "empty window" text. --- gdb/tui/tui-regs.c | 22 ++++++++++------------ gdb/tui/tui-regs.h | 2 +- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c index 5726dc3fea8..bf752c267ff 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -348,21 +348,19 @@ tui_data_window::first_data_item_displayed () } void -tui_data_window::erase_data_content (const char *prompt) +tui_data_window::erase_data_content () { werase (handle.get ()); check_and_display_highlight_if_needed (); - if (prompt != NULL) - { - int half_width = (width - box_size ()) / 2; - int x_pos; - if (strlen (prompt) >= half_width) - x_pos = 1; - else - x_pos = half_width - strlen (prompt); - display_string (height / 2, x_pos, prompt); - } + const char *prompt = _("[ Register Values Unavailable ]"); + int half_width = (width - box_size ()) / 2; + int x_pos; + if (strlen (prompt) >= half_width) + x_pos = 1; + else + x_pos = half_width - strlen (prompt); + display_string (height / 2, x_pos, prompt); } /* See tui-regs.h. */ @@ -371,7 +369,7 @@ void tui_data_window::rerender () { if (m_regs_content.empty ()) - erase_data_content (_("[ Register Values Unavailable ]")); + erase_data_content (); else display_registers_from (0); tui_wrefresh (handle.get ()); diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h index b31a5a3e5b8..29518a6f714 100644 --- a/gdb/tui/tui-regs.h +++ b/gdb/tui/tui-regs.h @@ -128,7 +128,7 @@ struct tui_data_window : public tui_win_info done when the data window is scrolled. */ void delete_data_content_windows (); - void erase_data_content (const char *prompt); + void erase_data_content (); /* Information about each register in the current register group. */ std::vector m_regs_content; From patchwork Sun Dec 17 19:50:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 82350 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 4608E38582A3 for ; Sun, 17 Dec 2023 19:51:39 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta040.useast.a.cloudfilter.net (omta040.useast.a.cloudfilter.net [44.202.169.39]) by sourceware.org (Postfix) with ESMTPS id 3FE923858428 for ; Sun, 17 Dec 2023 19:50:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3FE923858428 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3FE923858428 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=44.202.169.39 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842634; cv=none; b=pRYv/+JRkS90CxhDBgMPT0SUQFS2Bfdh95kcgP2obLE7zhLXT5doHOBEVERNmQ4uHrVwTN2WeG8doO5r3ou3fvbdB56Pn6SBcUvaflGbgb6GOiuwcyjxgpG6EL3CSTBZ2B1N3N0BdkNmbyW1+Xodn3fyUQDZB+Oo8qkgZ2lDFRA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842634; c=relaxed/simple; bh=2JTnZHLwKhZrXjqshc2Dy4GF40NL4qTyCOtd9CXn7+o=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=GqlCeLTIomWNVvjQHBtx8oOBteuQ3Qv5lcOrasXNrF9sNCI+EAoK2AJbk2rFvooen9Q8nyQm2+lDcH9NwaPP/KqoacAvdKNcPOjzLcO16vrf4+FxWmRQHC9Q8On1UgaY9LTsUNHEVPh2eQQ9tXxVyQu+k7jYq+ooyUdaeMK43xY= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-5010a.ext.cloudfilter.net ([10.0.29.199]) by cmsmtp with ESMTPS id EuMdr3ds26nOZEx9jrqVxu; Sun, 17 Dec 2023 19:50:31 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id Ex9hrq9ZHhDnyEx9ireMAV; Sun, 17 Dec 2023 19:50:30 +0000 X-Authority-Analysis: v=2.4 cv=fda+dmcF c=1 sm=1 tr=0 ts=657f5106 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=OWjo9vPv0XrRhIrVQ50Ab3nP57M=:19 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=IkcTkHD0fZMA:10 a=e2cXIFwxEfEA:10 a=Qbun_eYptAEA:10 a=bwQBAW50m2uJdQauim0A:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=aewQUaORzWFs/sHHF5sl5rQLpDu8LEeZCjJjT0YTmXA=; b=EsUbwu/3gniIFx/xv/geDCVwwo ttQokOkfYmMlpaeIXRPaoLVtZ5G8POfnoc8sJRcbtQh0HxURMO9D8RFsbM50nrt17DN9hgf2p+Oy1 0kat+Ar20zeTFDRJthBrztlRM; Received: from 71-211-161-25.hlrn.qwest.net ([71.211.161.25]:40716 helo=[192.168.0.21]) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1rEx9h-004MyY-1v for gdb-patches@sourceware.org; Sun, 17 Dec 2023 12:50:29 -0700 From: Tom Tromey Date: Sun, 17 Dec 2023 12:50:35 -0700 Subject: [PATCH 10/14] Remove tui_refreshing_registers MIME-Version: 1.0 Message-Id: <20231217-tui-regs-cleanup-v1-10-67bd0ea1e8be@tromey.com> References: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> In-Reply-To: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.4 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 71.211.161.25 X-Source-L: No X-Exim-ID: 1rEx9h-004MyY-1v X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 71-211-161-25.hlrn.qwest.net ([192.168.0.21]) [71.211.161.25]:40716 X-Source-Auth: tom+tromey.com X-Email-Count: 11 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfGZU6OJefpxmxIFbI3d8o0HbR7AAfITmS4Zs3qacega1C4FQzrAjMfO8wWywJjh07IN3JhzMgxkCs41Mx7V8q0TfL4OKt8IDYjdw6dBr7n6/npb9d2Dm NmKsVLA0QdqZnpTNHXbllR4kdT8sb2C5qgsHleXvfsheT2qnOJket8sCFE4TRmutMgvds4Lq6EvlXXExEUAT7b50llkBmxnfy9g= X-Spam-Status: No, score=-3022.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, 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.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org The comment by tui_refreshing_registers mentions a hook that no longer exists. However, maybe the comment is wrong. The code paths touching tui_refreshing_registers can only be called in two places: 1. From the before_prompt observer. This is only called when a prompt is about to be displayed. 2. From the register_changed observer. This is only called when value_assign changes a register value. From this it seems clear that the recursion case here cannot in fact occur. This patch removes the variable. --- gdb/tui/tui-hooks.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/gdb/tui/tui-hooks.c b/gdb/tui/tui-hooks.c index 6525f0f2b6c..e47607fefa9 100644 --- a/gdb/tui/tui-hooks.c +++ b/gdb/tui/tui-hooks.c @@ -63,9 +63,6 @@ static void tui_all_objfiles_removed (program_space *pspace) { tui_on_objfiles_changed (); } -/* Prevent recursion of deprecated_register_changed_hook(). */ -static bool tui_refreshing_registers = false; - /* Observer for the register_changed notification. */ static void @@ -82,12 +79,7 @@ tui_register_changed (frame_info_ptr frame, int regno) up in the other. So we always use the selected frame here, and ignore FRAME. */ fi = get_selected_frame (NULL); - if (!tui_refreshing_registers) - { - tui_refreshing_registers = true; - TUI_DATA_WIN->check_register_values (fi); - tui_refreshing_registers = false; - } + TUI_DATA_WIN->check_register_values (fi); } /* Breakpoint creation hook. @@ -145,11 +137,7 @@ tui_refresh_frame_and_register_information () /* Refresh the register window if it's visible. */ if (tui_is_window_visible (DATA_WIN) && (frame_info_changed_p || from_stack)) - { - tui_refreshing_registers = true; - TUI_DATA_WIN->check_register_values (fi); - tui_refreshing_registers = false; - } + TUI_DATA_WIN->check_register_values (fi); } else if (!from_stack) { From patchwork Sun Dec 17 19:50:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 82353 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A2DFB3858024 for ; Sun, 17 Dec 2023 19:51:54 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta40.uswest2.a.cloudfilter.net (omta40.uswest2.a.cloudfilter.net [35.89.44.39]) by sourceware.org (Postfix) with ESMTPS id 664D5385843A for ; Sun, 17 Dec 2023 19:50:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 664D5385843A Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 664D5385843A Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=35.89.44.39 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842635; cv=none; b=msLFzovdyh1PZXUGCjtm1qeYPKvcZr0NR9iWTZVCHIg/X6DsGnAFhCEaqPwXBtL2++A+YtUO45plIhUBE5yPD/wkzD9yCmXaBMUF7L48NmGAHF2K+i3ZdeUINouXzfrKCYHVyWcmSqTFXGYRqxTTRpXf9ws6JyJCJJkOJhOBt5c= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842635; c=relaxed/simple; bh=u7UNgHLHoD5e9j4G5VQauGBYNUH1Rh8gmtj5Bv49dS0=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=Q07EJGngT1f5UIKK3PKAkLN2hHuRr5L7yXQyCIuwTPAKYH0FtpONJ1OCdrrlvrd2w3vKjCQEt6cKV8qJv570ZZgIu9z5qam19Wwb0YtQeujUbQuCSdeOhtwaGnPdEuwjUWbQigi3tML+RV9t9WueiCXWiTXWQ0wM1iprKKULwOo= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-6001a.ext.cloudfilter.net ([10.0.30.140]) by cmsmtp with ESMTPS id Et1rriUR9L9AgEx9irX1Xg; Sun, 17 Dec 2023 19:50:30 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id Ex9hr6MCHb8QnEx9irALUf; Sun, 17 Dec 2023 19:50:30 +0000 X-Authority-Analysis: v=2.4 cv=IuQNzZzg c=1 sm=1 tr=0 ts=657f5106 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=OWjo9vPv0XrRhIrVQ50Ab3nP57M=:19 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=IkcTkHD0fZMA:10 a=e2cXIFwxEfEA:10 a=Qbun_eYptAEA:10 a=OmRwvL_3p8ROV2Qvn1cA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=U41bXq9yp+8MAxRHTQR+w2v4UIt3YTTILDJb7bqHFH0=; b=LIIN5aKOUn/ZxvrkWzBAK6iNTD kH8T5gJ/cNdusrfvSwTbmn99b6z21AcoW+i1d+JJbdyNtJJ5MLuCojI2elYs8SDNkrZI3dzp6mZYr 5HVMgES3nGzfS0/BCCCDVIgQq; Received: from 71-211-161-25.hlrn.qwest.net ([71.211.161.25]:40716 helo=[192.168.0.21]) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1rEx9h-004MyY-2N for gdb-patches@sourceware.org; Sun, 17 Dec 2023 12:50:29 -0700 From: Tom Tromey Date: Sun, 17 Dec 2023 12:50:36 -0700 Subject: [PATCH 11/14] Remove redundant check from tui_refresh_frame_and_register_information MIME-Version: 1.0 Message-Id: <20231217-tui-regs-cleanup-v1-11-67bd0ea1e8be@tromey.com> References: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> In-Reply-To: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.4 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 71.211.161.25 X-Source-L: No X-Exim-ID: 1rEx9h-004MyY-2N X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 71-211-161-25.hlrn.qwest.net ([192.168.0.21]) [71.211.161.25]:40716 X-Source-Auth: tom+tromey.com X-Email-Count: 12 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfHkTc+SvTQ4LzuUBwsSH504jpvs8sCaZrnq589EOa7cbNHk/J1HT8i1g5yh/QX80H1eWHZAFmjlyhDpJ2h8D+9tktK0y9H1GSBryDhuFY5jr/TqO+bs7 jEBqktehPVPrOrFDPnGyBU4YqQ7LQfenook+cpk6CEv89LPEqDBXK6Z0SMpQJdYdCYEIKoHxCawcRa+xQnhBcQ9yFbcR/bWPruw= X-Spam-Status: No, score=-3022.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_MSPIKE_H2, 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.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org tui_refresh_frame_and_register_information checks 'from_stack' in a block that's already guarded by a 'from_stack' check. This patch removes the redundant check. --- gdb/tui/tui-hooks.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gdb/tui/tui-hooks.c b/gdb/tui/tui-hooks.c index e47607fefa9..f1e4978a40a 100644 --- a/gdb/tui/tui-hooks.c +++ b/gdb/tui/tui-hooks.c @@ -132,11 +132,10 @@ tui_refresh_frame_and_register_information () /* Display the frame position (even if there is no symbols or the PC is not known). */ - bool frame_info_changed_p = tui_show_frame_info (fi); + tui_show_frame_info (fi); /* Refresh the register window if it's visible. */ - if (tui_is_window_visible (DATA_WIN) - && (frame_info_changed_p || from_stack)) + if (tui_is_window_visible (DATA_WIN)) TUI_DATA_WIN->check_register_values (fi); } else if (!from_stack) From patchwork Sun Dec 17 19:50:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 82351 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 5927A3858012 for ; Sun, 17 Dec 2023 19:51:44 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta34.uswest2.a.cloudfilter.net (omta34.uswest2.a.cloudfilter.net [35.89.44.33]) by sourceware.org (Postfix) with ESMTPS id 42C0D385842E for ; Sun, 17 Dec 2023 19:50:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 42C0D385842E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 42C0D385842E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=35.89.44.33 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842633; cv=none; b=xLwZkbGdeNJdzvIl4OZBPGJ/qQ9xbIRaxKO8/vlmcoEL77YPMSSH4AykCQ3qPzErC5GrcVZGaJCkGnavtt81PfDfRbxQ9ft1AXDnMRnd/Yx31X7K2FzVeP2J8XyZOiyTzR9B/6W7+4oKFWGeUpHNBVkdMgvRZGKSGVcwR84Z45M= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842633; c=relaxed/simple; bh=iC+fEAAQ+Fum4ouu3KIh0dcOc3co2GqQflfLg1WSly8=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=lj6uz+sUii88XsHcKk15aFfn5+DT3j2zlJI9RcDB6qyIW83g55AjHmOijxSwbS0DZwaZxl5FcLxRA+/QQJ/oY06AkK4Zz0QSbSYegqdrW+B+o0ArqFbaGB9/UcYd44GsFujrFfrEMTNzUPrfE1M4fZptZzRHbE0+wteByRCzDGk= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-6008a.ext.cloudfilter.net ([10.0.30.227]) by cmsmtp with ESMTPS id EtKCrcFcQ8HteEx9ir8G0y; Sun, 17 Dec 2023 19:50:30 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id Ex9irfL0g0xkrEx9irQ2O2; Sun, 17 Dec 2023 19:50:30 +0000 X-Authority-Analysis: v=2.4 cv=N7U6qkxB c=1 sm=1 tr=0 ts=657f5106 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=OWjo9vPv0XrRhIrVQ50Ab3nP57M=:19 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=IkcTkHD0fZMA:10 a=e2cXIFwxEfEA:10 a=Qbun_eYptAEA:10 a=78A9mZFNi132CAqi_5sA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=b5XEY9mhCuwHiNN8I/cWFAv2DqdNS8hDf+ny3m9wKcA=; b=Dw1kPWMyZl12tFvc8lxayo4LOB cfywQFfhmOHDEkJDaR0g1UBSrQj3ePuai35ndC221ryhm+JoEsQjgxwQ0/zXrqsHqrSBhy2X9PEed O9zzI3kWraV2mO4HC8Txf68xe; Received: from 71-211-161-25.hlrn.qwest.net ([71.211.161.25]:40716 helo=[192.168.0.21]) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1rEx9h-004MyY-2q for gdb-patches@sourceware.org; Sun, 17 Dec 2023 12:50:29 -0700 From: Tom Tromey Date: Sun, 17 Dec 2023 12:50:37 -0700 Subject: [PATCH 12/14] Return void from tui_show_frame_info MIME-Version: 1.0 Message-Id: <20231217-tui-regs-cleanup-v1-12-67bd0ea1e8be@tromey.com> References: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> In-Reply-To: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.4 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 71.211.161.25 X-Source-L: No X-Exim-ID: 1rEx9h-004MyY-2q X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 71-211-161-25.hlrn.qwest.net ([192.168.0.21]) [71.211.161.25]:40716 X-Source-Auth: tom+tromey.com X-Email-Count: 13 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfMeVNVF3AntE5Sc8mDTQo+QRYbRKt/pca7ILWuSkLfDakaik8olPGclCR+ckDEUuO2hrVqEA6/I1edehO8HPgrRhbpSMXZCpwpF2ZJ0hv4I3ockudcwM ycYu+/1/nBhUuufop8tnz16LLY9QT/xN48LDn/fFDnX1n9Iu/MNGjdQ1NWk7eJ1UzqqDvTL+gtVqJVeHZrFrRFk6XTB4q9arPhk= X-Spam-Status: No, score=-3022.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_MSPIKE_H2, 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.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Nothing uses the tui_show_frame_info result any more, so change it to return void. --- gdb/tui/tui-stack.c | 16 ++++++---------- gdb/tui/tui-stack.h | 2 +- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c index 8bf65ea3556..f40948b2305 100644 --- a/gdb/tui/tui-stack.c +++ b/gdb/tui/tui-stack.c @@ -262,13 +262,11 @@ tui_locator_window::rerender () wmove (handle.get (), 0, 0); } -/* Function to print the frame information for the TUI. The windows are - refreshed only if frame information has changed since the last refresh. +/* Function to print the frame information for the TUI. The windows + are refreshed only if frame information has changed since the last + refresh. */ - Return true if frame information has changed (and windows - subsequently refreshed), false otherwise. */ - -bool +void tui_show_frame_info (frame_info_ptr fi) { bool locator_changed_p; @@ -292,7 +290,7 @@ tui_show_frame_info (frame_info_ptr fi) not changed. If frame information has not changed, then the windows' contents will not change. So don't bother refreshing the windows. */ if (!locator_changed_p) - return false; + return; for (struct tui_source_window_base *win_info : tui_source_windows ()) { @@ -307,13 +305,11 @@ tui_show_frame_info (frame_info_ptr fi) locator_changed_p = tui_location.set_location (NULL, sal, ""); if (!locator_changed_p) - return false; + return; for (struct tui_source_window_base *win_info : tui_source_windows ()) win_info->erase_source_content (); } - - return true; } void diff --git a/gdb/tui/tui-stack.h b/gdb/tui/tui-stack.h index ca95b2bf78a..3f71a4165de 100644 --- a/gdb/tui/tui-stack.h +++ b/gdb/tui/tui-stack.h @@ -51,6 +51,6 @@ struct tui_locator_window }; extern void tui_show_locator_content (void); -extern bool tui_show_frame_info (frame_info_ptr); +extern void tui_show_frame_info (frame_info_ptr); #endif /* TUI_TUI_STACK_H */ From patchwork Sun Dec 17 19:50:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 82349 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id EBD203858033 for ; Sun, 17 Dec 2023 19:51:28 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta040.useast.a.cloudfilter.net (omta040.useast.a.cloudfilter.net [44.202.169.39]) by sourceware.org (Postfix) with ESMTPS id 840263858281 for ; Sun, 17 Dec 2023 19:50:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 840263858281 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 840263858281 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=44.202.169.39 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842634; cv=none; b=mDzt7aioBLm/Es2/uqfq97Uwhn2hmv+mUpnpmVTUg1z7jZU0Yms37bvU8ciapX9a39jWNuqkbOaIlC4J5HxwqpDYcCBE2WJS4mv68mGWlf7Qdb589Lf+iOh9f7L7ZyGQO+jHDGuhGbLsBHoUURrsfxqYa4OawPoOHI3anW8VAsA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842634; c=relaxed/simple; bh=bgSKVWFLYUsVXIOKtCYpBjRDKfL2eDgN+RCQR/uQXxQ=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=JhSWK1rP8pNrah5eO8qjH8ZX1lGKsIvpDvrC1Fqz7JJM3+X5cGW70Pzv+Csbt8iAdXNfPrRzaft+WtfcMttrLRjO5U7y5DomKN2tu5BJ/Ye3SsCLPsZFiY0qJbYfN1hWIqafkx9t64wSDzXm+FTTslV9d+RgC+Gg7TsKwM2YYhY= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-5009a.ext.cloudfilter.net ([10.0.29.176]) by cmsmtp with ESMTPS id EwzKr42jn6nOZEx9jrqVy0; Sun, 17 Dec 2023 19:50:31 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id Ex9ir9fI797pzEx9iryMc7; Sun, 17 Dec 2023 19:50:30 +0000 X-Authority-Analysis: v=2.4 cv=ULDOoQTy c=1 sm=1 tr=0 ts=657f5106 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=OWjo9vPv0XrRhIrVQ50Ab3nP57M=:19 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=IkcTkHD0fZMA:10 a=e2cXIFwxEfEA:10 a=Qbun_eYptAEA:10 a=omU_MB-4Xj8zNouxIBkA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=E5mrETLPqXyW3yY9Pat9OP+dErled5/UfY8a5B6YRJ8=; b=x+JftgAOfTFNWvfJZlt4473wQU xBnVEs4XAJycdTA2t536h6gRRgIFM95UP1Cs/2t4s8cSGMglacU2oL/3UOttmgyzCdo1c9KQ0Et0F oSGhxhoxJlCnBLw5fjaXob/bN; Received: from 71-211-161-25.hlrn.qwest.net ([71.211.161.25]:40716 helo=[192.168.0.21]) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1rEx9i-004MyY-04 for gdb-patches@sourceware.org; Sun, 17 Dec 2023 12:50:30 -0700 From: Tom Tromey Date: Sun, 17 Dec 2023 12:50:38 -0700 Subject: [PATCH 13/14] Rename show_registers -> set_register_group MIME-Version: 1.0 Message-Id: <20231217-tui-regs-cleanup-v1-13-67bd0ea1e8be@tromey.com> References: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> In-Reply-To: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.4 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 71.211.161.25 X-Source-L: No X-Exim-ID: 1rEx9i-004MyY-04 X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 71-211-161-25.hlrn.qwest.net ([192.168.0.21]) [71.211.161.25]:40716 X-Source-Auth: tom+tromey.com X-Email-Count: 14 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfPmitwPqPWlCgCmprq47Fz4waz+oJaDlbezwgyUUnmnP0JnhpuqbKFbG4oUtuG//9JueSYeb1nBKrM4E41sazhybqGjuqh2XdbS6b9yhOArVuFFAcvzl 14ixwTX4Aq61O6FKRVU8lIETFTsutBUkGGZCzMRqmj5uOWidglU7+TFifIxYmOc8QKwzzGvcWYupofAMp7k0e7tcMq3HigBhC2Y= X-Spam-Status: No, score=-3022.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, 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.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org This renames a method on the TUI register window to reflect its real purpose. --- gdb/tui/tui-regs.c | 6 +++--- gdb/tui/tui-regs.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c index bf752c267ff..248e6395cd7 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -164,7 +164,7 @@ tui_data_window::first_reg_element_no_inline (int line_no) const /* Show the registers of the given group in the data window and refresh the window. */ void -tui_data_window::show_registers (const reggroup *group) +tui_data_window::set_register_group (const reggroup *group) { update_register_data (group); rerender (); @@ -405,7 +405,7 @@ void tui_data_window::check_register_values (frame_info_ptr frame) { if (m_regs_content.empty ()) - show_registers (m_current_group); + set_register_group (m_current_group); else { for (tui_register_info &data_item_win : m_regs_content) @@ -543,7 +543,7 @@ tui_reg_command (const char *args, int from_tty) if (match == NULL) error (_("unknown register group '%s'"), args); - TUI_DATA_WIN->show_registers (match); + TUI_DATA_WIN->set_register_group (match); } else { diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h index 29518a6f714..a5cd30b7160 100644 --- a/gdb/tui/tui-regs.h +++ b/gdb/tui/tui-regs.h @@ -70,7 +70,7 @@ struct tui_data_window : public tui_win_info void check_register_values (frame_info_ptr frame); - void show_registers (const reggroup *group); + void set_register_group (const reggroup *group); const reggroup *get_current_group () const { From patchwork Sun Dec 17 19:50:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 82356 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0D4173858CD1 for ; Sun, 17 Dec 2023 19:52:14 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta036.useast.a.cloudfilter.net (omta036.useast.a.cloudfilter.net [44.202.169.35]) by sourceware.org (Postfix) with ESMTPS id 8869A3858282 for ; Sun, 17 Dec 2023 19:50:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8869A3858282 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8869A3858282 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=44.202.169.35 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842634; cv=none; b=dUhsAGkW57RYxmYdFoIzH9hI0tWeITsFh40EF38XnZCGMvwDdSQ8oKwUzs8TmL7lTynHJI2shP0FF9Pn1ZFMLAXUA/dYs9bN/7Mtex4mDa/GqZXc2PA4d0vGx76hT2EhXqJ02n3gdtdRjxzZsPZFpqZ97+SCEqnz/SMY+1t01ow= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842634; c=relaxed/simple; bh=z2B8Ze963rKqx5VHlRt3n33YTh1wENUB1y6jInxT9FY=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=P00qYgYWPCkpBaCmsMjYX7qt2nD8iKUWG59rMFwxKVzZ9p58NAD/GO8nNo5VZUT2GS7Z2O5X2ekq9bi+URsO7yfjkU2PvOjAKBrBJAW611aoMFeqM+soP9EWK2EovJVJbsOvFhVVaIwH7hBiPbUwC+thoMAXcmCVoHeHhY70jYY= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-5010a.ext.cloudfilter.net ([10.0.29.199]) by cmsmtp with ESMTPS id Epp0rS6cQgpyEEx9jr7ugt; Sun, 17 Dec 2023 19:50:31 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id Ex9irq9ZghDnyEx9ireMAo; Sun, 17 Dec 2023 19:50:30 +0000 X-Authority-Analysis: v=2.4 cv=fda+dmcF c=1 sm=1 tr=0 ts=657f5106 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=OWjo9vPv0XrRhIrVQ50Ab3nP57M=:19 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=IkcTkHD0fZMA:10 a=e2cXIFwxEfEA:10 a=Qbun_eYptAEA:10 a=CCpqsmhAAAAA:8 a=J7OpDS2o9tLqZ7oW0yEA:9 a=QEXdDO2ut3YA:10 a=ul9cdbp4aOFLsgKbc677:22 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=bsNwiSGYp5p7YNw8e9TgqHKp41q5amDmgLtawSDuipQ=; b=o1BV4qPaRJJwT6WodMQanCx65Y HT0elAanoYorCcHZ6tAaDJqCztnGyKPJlreE14/gRsMcIyFUCwecDvZcuRhC+BJydt9ba4liqG5BJ SU8r7TlcI84cwSVCPDOVafWD9; Received: from 71-211-161-25.hlrn.qwest.net ([71.211.161.25]:40716 helo=[192.168.0.21]) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1rEx9i-004MyY-0Y for gdb-patches@sourceware.org; Sun, 17 Dec 2023 12:50:30 -0700 From: Tom Tromey Date: Sun, 17 Dec 2023 12:50:39 -0700 Subject: [PATCH 14/14] Update TUI register window when the inferior exits MIME-Version: 1.0 Message-Id: <20231217-tui-regs-cleanup-v1-14-67bd0ea1e8be@tromey.com> References: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> In-Reply-To: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.4 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 71.211.161.25 X-Source-L: No X-Exim-ID: 1rEx9i-004MyY-0Y X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 71-211-161-25.hlrn.qwest.net ([192.168.0.21]) [71.211.161.25]:40716 X-Source-Auth: tom+tromey.com X-Email-Count: 15 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfGZU6OJefpxmxIFbI3d8o0HbR7AAfITmS4Zs3qacega1C4FQzrAjMfO8wWywJjh07IN3JhzMgxkCs41Mx7V8q0TfL4OKt8IDYjdw6dBr7n6/npb9d2Dm NmKsVLA0QdqZnpTNHXbllR4kdT8sb2C5qgsHleXvfsheT2qnOJket8sCFE4TRmutMgvds4Lq6EvlXXExEUAT7b50llkBmxnfy9g= X-Spam-Status: No, score=-3022.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, 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.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org When the inferior exits, the TUI register window should clear. Fixing this was mostly a matter of sticking an assignment into tui_inferior_exit. However, some changes to the register window itself were also needed. While working on this, I realized that the TUI register window would not work correctly when moving between frames of different architectures. This patch attempts to fix this as well, though I have no way to test it. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28600 --- gdb/testsuite/gdb.tui/regs.exp | 8 +++++++ gdb/tui/tui-hooks.c | 17 +++++++++------ gdb/tui/tui-regs.c | 48 ++++++++++++++++++++++++++---------------- gdb/tui/tui-regs.h | 4 ++++ 4 files changed, 53 insertions(+), 24 deletions(-) diff --git a/gdb/testsuite/gdb.tui/regs.exp b/gdb/testsuite/gdb.tui/regs.exp index 0be99625b9f..c9e7cac72b7 100644 --- a/gdb/testsuite/gdb.tui/regs.exp +++ b/gdb/testsuite/gdb.tui/regs.exp @@ -30,6 +30,9 @@ if {![runto_main]} { return } +# This is convenient later on. +gdb_test_no_output "set confirm off" + if {![Term::enter_tui]} { unsupported "TUI not supported" return @@ -48,6 +51,11 @@ gdb_assert \ { ![Term::check_region_contents_p 0 0 80 8 $re_reg_vals_unavailable] } \ "Register values available" +Term::command "kill" +gdb_assert \ + { [Term::check_region_contents_p 0 0 80 8 $re_reg_vals_unavailable] } \ + "Register values no longer available" + # Check that we can successfully cause the register window to appear # using the 'tui reg next' and 'tui reg prev' commands. foreach_with_prefix cmd { next prev } { diff --git a/gdb/tui/tui-hooks.c b/gdb/tui/tui-hooks.c index f1e4978a40a..3b5dd527fac 100644 --- a/gdb/tui/tui-hooks.c +++ b/gdb/tui/tui-hooks.c @@ -126,19 +126,23 @@ tui_refresh_frame_and_register_information () target_terminal::scoped_restore_terminal_state term_state; target_terminal::ours_for_output (); - if (from_stack && has_stack_frames ()) + if (from_stack) { - frame_info_ptr fi = get_selected_frame (NULL); + frame_info_ptr fi; + if (has_stack_frames ()) + { + fi = get_selected_frame (NULL); - /* Display the frame position (even if there is no symbols or - the PC is not known). */ - tui_show_frame_info (fi); + /* Display the frame position (even if there is no symbols or + the PC is not known). */ + tui_show_frame_info (fi); + } /* Refresh the register window if it's visible. */ if (tui_is_window_visible (DATA_WIN)) TUI_DATA_WIN->check_register_values (fi); } - else if (!from_stack) + else { /* Make sure that the source window is displayed. */ tui_add_win_to_layout (SRC_WIN); @@ -169,6 +173,7 @@ tui_inferior_exit (struct inferior *inf) tui_set_key_mode (TUI_COMMAND_MODE); tui_show_frame_info (0); tui_display_main (); + from_stack = true; } /* Observer for the before_prompt notification. */ diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c index 248e6395cd7..feaf3b5abb8 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -107,12 +107,9 @@ tui_register_format (frame_info_ptr frame, int regnum) void tui_register_info::update (const frame_info_ptr &frame) { - if (target_has_registers ()) - { - std::string new_content = tui_register_format (frame, regno); - highlight = content != new_content; - content = std::move (new_content); - } + std::string new_content = tui_register_format (frame, regno); + highlight = content != new_content; + content = std::move (new_content); } /* See tui-regs.h. */ @@ -186,13 +183,22 @@ tui_data_window::update_register_data (const reggroup *group) { set_title (""); m_current_group = nullptr; + m_gdbarch = nullptr; m_regs_content.clear (); return; } frame_info_ptr frame = get_selected_frame (nullptr); + struct gdbarch *gdbarch = get_frame_arch (frame); + + if (m_current_group == group && m_gdbarch == gdbarch) + { + /* Nothing to do here. */ + return; + } m_current_group = group; + m_gdbarch = gdbarch; /* Make a new title showing which group we display. */ this->set_title (string_printf ("Register group: %s", group->name ())); @@ -200,7 +206,6 @@ tui_data_window::update_register_data (const reggroup *group) /* Create the registers. */ m_regs_content.clear (); - struct gdbarch *gdbarch = get_frame_arch (frame); for (int regnum = 0; regnum < gdbarch_num_cooked_regs (gdbarch); regnum++) @@ -404,24 +409,31 @@ tui_data_window::do_scroll_vertical (int num_to_scroll) void tui_data_window::check_register_values (frame_info_ptr frame) { - if (m_regs_content.empty ()) - set_register_group (m_current_group); + if (frame == nullptr) + set_register_group (nullptr); else { - for (tui_register_info &data_item_win : m_regs_content) + /* If the frame architecture changed, we need to reset the + register group. */ + struct gdbarch *gdbarch = get_frame_arch (frame); + if (gdbarch != m_gdbarch) + set_register_group (nullptr); + else { - bool was_hilighted = data_item_win.highlight; + for (tui_register_info &data_item_win : m_regs_content) + { + bool was_hilighted = data_item_win.highlight; - data_item_win.update (frame); + data_item_win.update (frame); - /* Register windows whose y == 0 are outside the visible area. */ - if ((data_item_win.highlight || was_hilighted) - && data_item_win.y > 0) - data_item_win.rerender (handle.get (), m_item_width); + /* Register windows whose y == 0 are outside the visible area. */ + if ((data_item_win.highlight || was_hilighted) + && data_item_win.y > 0) + data_item_win.rerender (handle.get (), m_item_width); + } } + tui_wrefresh (handle.get ()); } - - tui_wrefresh (handle.get ()); } /* Display a register in a window. If hilite is TRUE, then the value diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h index a5cd30b7160..6c62938259f 100644 --- a/gdb/tui/tui-regs.h +++ b/gdb/tui/tui-regs.h @@ -137,6 +137,10 @@ struct tui_data_window : public tui_win_info /* Width of each register's display area. */ int m_item_width = 0; + + /* Architecture of frame whose registers are being displayed, or + nullptr if the display is empty (i.e., there is no frame). */ + gdbarch *m_gdbarch = nullptr; }; #endif /* TUI_TUI_REGS_H */