From patchwork Sat Jan 20 18:23:12 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 84487 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 CD8A638582AF for ; Sat, 20 Jan 2024 18:23:55 +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 59F443858D39 for ; Sat, 20 Jan 2024 18:23:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 59F443858D39 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 59F443858D39 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=1705775000; cv=none; b=annYtgtStkNkFV3uXWxNH0NYfJiFluj/GWUO897vkPYB59PiB3L53/k5+WBrPm9p62NfkcNdt881AHblcfHSgI2ug+pPRxJSA4Uvk0y17iDztXO/Bxxwjp/FkcqtLHZ/N6eCroa8Usk+egOvVdMrcvjOEn2UMomMcJPNCYCnP5o= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705775000; c=relaxed/simple; bh=H+5Q3Pf0K+Zt8DFvxsTVOd5/Pr8v9UQG8jY/QJiR9GM=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=QbZxHBfZJxP0/+MAeO5FSXPh+pHaOAHupmWX1nVHyw6GdNSU8p1KVYgfWf62A05vaqcITel/KGN/7gvsO2cxAer9+7hmc3KJqmA345dhuHgDO5QnlSNW1mpHpblYs1hn9nZuAOKCeXmcSFKdxql0z9U72L+2Kx2AG/I+Avxjirk= 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 RA18rZvlZ9gG6RFzzrvSX9; Sat, 20 Jan 2024 18:23:19 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id RFzyrA036WRcnRFzyryiWB; Sat, 20 Jan 2024 18:23:18 +0000 X-Authority-Analysis: v=2.4 cv=OPo0YAWB c=1 sm=1 tr=0 ts=65ac0f96 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=IkcTkHD0fZMA:10 a=dEuoMetlWLkA:10 a=Qbun_eYptAEA:10 a=20KFwNOVAAAA:8 a=hVr_97Er9cj9lV5-WSwA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To: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=NL88E5v4U+mymawNA1uGxflGXnEpq+4rh1YPC94zZ4w=; b=jyzi23D6fH39TVCB+4MfJMLOLK iVg82tpc0VaPis9gEj1v7xm+2lVezihNy0RirWEso3muXP9Yal8xY6VzuU3R7jx+pXZZmR3i5gCR8 WSnRpzmcYq2u8b8c8UzJ0fh2n; Received: from 97-122-68-157.hlrn.qwest.net ([97.122.68.157]:47898 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 1rRFzx-0049D4-2g; Sat, 20 Jan 2024 11:23:17 -0700 From: Tom Tromey Date: Sat, 20 Jan 2024 11:23:12 -0700 Subject: [PATCH v2 01/14] Use pop_back in tui_register_format MIME-Version: 1.0 Message-Id: <20240120-tui-regs-cleanup-v2-1-a3cccc6a3573@tromey.com> References: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> In-Reply-To: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> To: gdb-patches@sourceware.org Cc: Tom de Vries , Andrew Burgess 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: 97.122.68.157 X-Source-L: No X-Exim-ID: 1rRFzx-0049D4-2g X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-122-68-157.hlrn.qwest.net ([192.168.0.21]) [97.122.68.157]:47898 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: MS4xfGdveD59ZyOaTERTN8kIDdIypeerUH2TqmP75jtj7N3U4HfDeJHJB20zzfYjxfKeeLfECRD3RzP0ukh5FHp05QsVvOILKolSWkJEg20YRZ3ZT4pO1krb PItLlxKWHkWpICHWB9SIFXxvZpQ67GZByan6uGRX2JqkTXgolobrOEPETo+O2py0OiQlbE/4vpusxHrM4ORGpqRvSkM6CoLVc9g= X-Spam-Status: No, score=-3022.8 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 tui_register_format can use string::pop_back now. Tested-By: Tom de Vries Reviewed-By: Andrew Burgess --- 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 4a6696d99e7..590e9e81317 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 Sat Jan 20 18:23:13 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 84488 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 ED09238582AD for ; Sat, 20 Jan 2024 18:24:03 +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 309043858C5F for ; Sat, 20 Jan 2024 18:23:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 309043858C5F 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 309043858C5F 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=1705775001; cv=none; b=R1LYQGLtpRdljkiZn6VbXNXKXSclV+n37Qcdg40EuRmn+XOwv/MBiM3LcidB+mT7uDTOT+MXdltZVGGuMfi7R73HdGlKsxwaIdGooCNHu/He+LXggQjyvAZ77NWoY7G5FfW32/kKyvME5UMYAiGo0wOu1xSEffKjsVURQNMhku4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705775001; c=relaxed/simple; bh=8JZ4EtHcisYpGFJMAyYrXfEP/QW2FKlH+OeHFK/JnvY=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=tsGYaPvjEEyb+vxCcGnAMO5DsQndxh3EPLlGGv/xyE38UA8qfFwKgqpInftiRAvF0jrbhXAr4yo2iPWWhMS8ojxOEFp1Fu9ACIou7uEbEeVN3tbCHKKe6NAXvoVqz4N3AdAnpDnsOZ+SxTRrA6i9cyDhn3YDWNH6zExuq4da3As= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-5004a.ext.cloudfilter.net ([10.0.29.221]) by cmsmtp with ESMTPS id R8iwrZf9m9gG6RG00rvSXJ; Sat, 20 Jan 2024 18:23:20 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id RFzyrd2e0KleDRFzzruI2B; Sat, 20 Jan 2024 18:23:19 +0000 X-Authority-Analysis: v=2.4 cv=KcbBDCUD c=1 sm=1 tr=0 ts=65ac0f97 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=IkcTkHD0fZMA:10 a=dEuoMetlWLkA:10 a=Qbun_eYptAEA:10 a=20KFwNOVAAAA:8 a=VVPYQnLNjAP3haWqGDwA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To: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=ojblsao8yw0wxPva62j27lALlyV9UcrY/hYo5kPrL/s=; b=dgX+dL93MRj3MFFeu+XRBLShGI WJfh65KtHgjRRNuUNs2mYxB3iJ5NekuxNayIVsM320QJM9we+zJJSG5nZy+ZNHtWu4vlHQVxhciEu 8uEFLm3AUdV5gveipmP4HriNW; Received: from 97-122-68-157.hlrn.qwest.net ([97.122.68.157]:47898 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 1rRFzy-0049D4-0y; Sat, 20 Jan 2024 11:23:18 -0700 From: Tom Tromey Date: Sat, 20 Jan 2024 11:23:13 -0700 Subject: [PATCH v2 02/14] Minor C++ cleanups in tui-regs.c MIME-Version: 1.0 Message-Id: <20240120-tui-regs-cleanup-v2-2-a3cccc6a3573@tromey.com> References: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> In-Reply-To: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> To: gdb-patches@sourceware.org Cc: Tom de Vries , Andrew Burgess 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: 97.122.68.157 X-Source-L: No X-Exim-ID: 1rRFzy-0049D4-0y X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-122-68-157.hlrn.qwest.net ([192.168.0.21]) [97.122.68.157]:47898 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: MS4xfHYUhWwCysiKeWCSKwTU2GxE2/UU01sreGvlD70kmIZ8hpjTXYyTv1sb9it+VKWAL5AHS6jjPb6t468e/aKKb9YNW3ML8JGFDaSIL70mTLKlAViZcaHc xQmuX9E5L272G5uZIVKy8TESU3EJ7nk4OXRZuKqWtGuIYZsWp7HOh1b2+LticisXKerkCR1MhOokPea7/HW9vPJNFpkoJGq2JK0= X-Spam-Status: No, score=-3022.8 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 This changes a couple of spots to use nullptr rather than 0, and changes an int to a bool. Tested-By: Tom de Vries Reviewed-By: Andrew Burgess --- 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 590e9e81317..f1c3e2ed9d4 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 Sat Jan 20 18:23:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 84490 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 8F28F3858403 for ; Sat, 20 Jan 2024 18:24:18 +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 869963858C2A for ; Sat, 20 Jan 2024 18:23:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 869963858C2A 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 869963858C2A 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=1705775002; cv=none; b=cG/0ZalSR6eU4tRiALqJDU/NMjFyYnta+Vu3nZHKC2+LyqK9qT3fYP+sKf94nuvxYPIR3YSwf8aNTC9/Ccb4b8sTdcfeH9h2ZgglL1uORm+8ADtY+RBb6c29Zov6UrIOOBs7EZ/cRTScl5x/G4cxlDtEVZMWj/2ANHk6fEdjzx0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705775002; c=relaxed/simple; bh=QniY29br/uLQ6VOvVlS5S4ICHN+8cXHruJkqWzqjkL4=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=F9soW73h/dTk/cRbDH92zPRetD4enTit8PYk04KUsHSqhdtypDQIUxZaQ18kFLajHbOaYPQt5ishrqSXePDUzm1eKHPMOjK58XyKJWI7iaLWAUKLXZ/1RIZZOllngBObaj3mGVi8oQRRJMYKDKojGcLQXf+ccgpMCb/1pP7I+A8= 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 R8zcrcF3bTHHuRG00rPtvV; Sat, 20 Jan 2024 18:23:20 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id RFzzrf2z0V9xYRFzzrjVfm; Sat, 20 Jan 2024 18:23:19 +0000 X-Authority-Analysis: v=2.4 cv=NfP1akP4 c=1 sm=1 tr=0 ts=65ac0f97 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=IkcTkHD0fZMA:10 a=dEuoMetlWLkA:10 a=Qbun_eYptAEA:10 a=20KFwNOVAAAA:8 a=dZlg07msN1YJLqRH0mIA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To: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=jgr+xPZDsLQiQA0E5cVNbiBY5utcPvIZ2RYF98rrRPM=; b=fCFFEj1AAozUt6qdA0gLnuW5xQ cpQfpiMljQ/7JzkHBTuLpnHY+aUvOxWBZQn0Kv0zscxrqxJVIIc1qjuaUqfQquTsjI9l3hYSw1t+2 2Y7BB4XWqFVfpCtllyvNqmFYC; Received: from 97-122-68-157.hlrn.qwest.net ([97.122.68.157]:47898 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 1rRFzy-0049D4-2O; Sat, 20 Jan 2024 11:23:18 -0700 From: Tom Tromey Date: Sat, 20 Jan 2024 11:23:14 -0700 Subject: [PATCH v2 03/14] Simplify tui_data_window::show_register_group MIME-Version: 1.0 Message-Id: <20240120-tui-regs-cleanup-v2-3-a3cccc6a3573@tromey.com> References: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> In-Reply-To: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> To: gdb-patches@sourceware.org Cc: Tom de Vries , Andrew Burgess 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: 97.122.68.157 X-Source-L: No X-Exim-ID: 1rRFzy-0049D4-2O X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-122-68-157.hlrn.qwest.net ([192.168.0.21]) [97.122.68.157]:47898 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: MS4xfNSi51WuSA9y8SbiflA3bWHVD27ytLMn+K2QmUys4iHE+gj9hDyBmgf7WH2CyAyltfMuu9Sh6tTQ0aOl7C8akm0BuEt70LA3rDpVGp1LY6iFtvpVvZGA dJNKm+QToU38PnSr2q5hrOa65Xt3w2Y4zyhl44T+N+LtJV8Wm3w5LwfB78QIAGwjsQ8hr8jLMvleVAu8D9WdPVJN33In6D2V5rk= X-Spam-Status: No, score=-3022.8 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 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. Tested-By: Tom de Vries Reviewed-By: Andrew Burgess --- gdb/tui/tui-regs.c | 113 ++++++++++++++++++++--------------------------------- gdb/tui/tui-regs.h | 21 +++++++--- 2 files changed, 57 insertions(+), 77 deletions(-) diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c index f1c3e2ed9d4..f7911b53bfb 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -101,24 +101,20 @@ tui_register_format (frame_info_ptr frame, int regnum) return str; } -/* 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) +/* Compute the register value from the given frame and format it for + the display. update 'content' and set 'highlight' if the contents + changed. */ +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, m_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 (nullptr)); /* Clear all notation of changed values. */ for (auto &&data_item_win : m_regs_content) data_item_win.highlight = false; - m_current_group = group; } else { @@ -197,67 +191,46 @@ tui_data_window::show_registers (const reggroup *group) /* 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. */ + using the given frame. */ 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 +443,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 bb4a0cfdb60..c1f89a5c1a6 100644 --- a/gdb/tui/tui-regs.h +++ b/gdb/tui/tui-regs.h @@ -29,22 +29,32 @@ struct tui_data_item_window { - tui_data_item_window () = default; + tui_data_item_window (int regno, const frame_info_ptr &frame) + : m_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; bool highlight = false; bool visible = false; std::string content; + +private: + + /* The register number. */ + const int m_regno; }; /* The TUI registers window. */ @@ -104,9 +114,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 Sat Jan 20 18:23:15 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 84493 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 166303858292 for ; Sat, 20 Jan 2024 18:25:02 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta36.uswest2.a.cloudfilter.net (omta36.uswest2.a.cloudfilter.net [35.89.44.35]) by sourceware.org (Postfix) with ESMTPS id 2DB4C3858C33 for ; Sat, 20 Jan 2024 18:23:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2DB4C3858C33 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 2DB4C3858C33 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=35.89.44.35 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705775003; cv=none; b=Gkye9g1BoCf1LXmQM5hDR2jHRd/nynRYYtFXBq43Hwb0x6Kygkq2VUVerYwGPQaJGOxPvMDzL4Vjgdf7kzP4XNjKbrB9ETa3/2/1rb7Hsp7uOkHBgXwv2gHmMhDTzEWATWXP2VDBLcKYBcsoK7Ytsa95RSCn58WSkTzBQz8HQCo= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705775003; c=relaxed/simple; bh=7cx4s08ZKqQdTnefkJ3uaKBPDfdqRg4uQuuoXtroiGg=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=wEbcrxAQQCQZ8VBOA07j99yGU3ChV/LaXGnTdl1wC0CJtvCitrxGHBe3JXkj8Iv8lmRJBdXAmzgXBSfdtRcxY/OYLxn1R1+emcoq194G24ThXwK5D6RXJ4+HfMuiGIu0zDjQHXjy/0ffrEv0IzA+8wn7U0FJWorciJX1zEYrM/E= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-6010a.ext.cloudfilter.net ([10.0.30.248]) by cmsmtp with ESMTPS id R8ZOrMcUwCF6GRG00r7ztL; Sat, 20 Jan 2024 18:23:20 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id RFzzrMT05fPByRFzzrFcfF; Sat, 20 Jan 2024 18:23:20 +0000 X-Authority-Analysis: v=2.4 cv=T+af8tGQ c=1 sm=1 tr=0 ts=65ac0f98 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=IkcTkHD0fZMA:10 a=dEuoMetlWLkA:10 a=Qbun_eYptAEA:10 a=20KFwNOVAAAA:8 a=ktQ07uKBEBBQVHN25NMA:9 a=QEXdDO2ut3YA:10 a=ttL6gvAV6gYB7ajogvnJ:22 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To: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=fjfbuWaObSw7kb/HgH9eq1oz9tmQkZYeGCaOJWt62F0=; b=g3M0OOOv99qj25yq7XDCnjfBg2 /7gn1knfJT5Zz/m4+SLkc9IFvvemJeMvabBhtyNKHqxV+2BPy8cH8IGj5KZEGeQ0kSWnf+eZVaUc7 02LWNhvO2trIUeUo33xciJQiv; Received: from 97-122-68-157.hlrn.qwest.net ([97.122.68.157]:47898 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 1rRFzz-0049D4-0h; Sat, 20 Jan 2024 11:23:19 -0700 From: Tom Tromey Date: Sat, 20 Jan 2024 11:23:15 -0700 Subject: [PATCH v2 04/14] Rename tui_data_item_window -> tui_register_info MIME-Version: 1.0 Message-Id: <20240120-tui-regs-cleanup-v2-4-a3cccc6a3573@tromey.com> References: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> In-Reply-To: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> To: gdb-patches@sourceware.org Cc: Tom de Vries , Andrew Burgess 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: 97.122.68.157 X-Source-L: No X-Exim-ID: 1rRFzz-0049D4-0h X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-122-68-157.hlrn.qwest.net ([192.168.0.21]) [97.122.68.157]:47898 X-Source-Auth: tom+tromey.com X-Email-Count: 16 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfL2I8JFYQm4WrvHYwPptL+IBbfi6Q1MDdzDq200ywHCEXMSr7xAtJsZ2B+178o7jnLgeh2YuewQdtU9T1zP8W73LWIMfvuAEobVwumwrMWS1Ib5RhEvE mDR5VLLouWU2byV1ca8dR4sMHUTBoPGdFqe3ZaXL5s3BGYBZBSPOJiW4/CskP3ClYfhpwzxnzfmcKs1wt1GTSPwJWfgYbBdwKFk= X-Spam-Status: No, score=-3022.8 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. Tested-By: Tom de Vries Reviewed-By: Andrew Burgess --- 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 f7911b53bfb..bacb23ab298 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) the display. update 'content' and set 'highlight' if the contents changed. */ 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, m_regno); - - if (content != new_content) - highlight = true; - + highlight = content != new_content; content = std::move (new_content); } } @@ -229,7 +226,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); } } @@ -443,7 +440,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; @@ -462,7 +459,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 c1f89a5c1a6..e7125e457f5 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) : m_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); @@ -136,8 +136,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 Sat Jan 20 18:23:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 84489 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 CB79D3858283 for ; Sat, 20 Jan 2024 18:24:12 +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 BF7623858C2F for ; Sat, 20 Jan 2024 18:23:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BF7623858C2F 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 BF7623858C2F 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=1705775002; cv=none; b=SfZX4oaYUtimIYskYnKi87yuJlbnHw2NcbuJwKxE6C5tEu/7oT1JCzPzH8+ojb16aXp77+eMxAC2M83arq0fx2nD/J+ZyEGHX8g0kbKz6QwLuXq38FmUrwBIM1S5QFyYWwyQ+BuhnuaBnrCiVtgrILBlK8NsjtiojBw0bqyuGh8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705775002; c=relaxed/simple; bh=MiVwzHC31AaCrn2ZcQ4xl3xAA2n4N/BAeHeTePBDrIQ=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=x6xEdOvhQ6hLNEjBG/MzhMxuFn/lWpPZ89wjoyCVris1sXwCCsyGesn7jp++H5g0DDGbevse1RU8maoSFAdol1fT0rTorXbjU+x5dOBVUAkQsCoRcLsbpDDF0LRLL+21Bi+O8ibu89bpqlBGOoa1/kVP5aJSJ12xmVJzqRRGHHw= 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 R9B7rS9J78uLRRG00rCQnN; Sat, 20 Jan 2024 18:23:20 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id RFzzrrTM8ZKctRG00rk1tv; Sat, 20 Jan 2024 18:23:20 +0000 X-Authority-Analysis: v=2.4 cv=a+kjSGeF c=1 sm=1 tr=0 ts=65ac0f98 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=IkcTkHD0fZMA:10 a=dEuoMetlWLkA:10 a=Qbun_eYptAEA:10 a=c5Q-8MILhn972Ji1mJcA: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=yB8xZ2o949K63esPV1n2nophPgN36t0ZYmS4ZNeC2p8=; b=DYJWC1RPPbjTDK+pCJQ2ZLnygW Q9IM5Ihj89OC9UsB1Ck7lzzquYGHPZfrJEhlN9kbGZdqhuaMRvf2poAHtlA6A5mmS11iwx5s2g6Ui BgGQW2zoqGgASxWFt8ris2iPd; Received: from 97-122-68-157.hlrn.qwest.net ([97.122.68.157]:47898 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 1rRFzz-0049D4-1T for gdb-patches@sourceware.org; Sat, 20 Jan 2024 11:23:19 -0700 From: Tom Tromey Date: Sat, 20 Jan 2024 11:23:16 -0700 Subject: [PATCH v2 05/14] Change tui_register_info::visible to a method MIME-Version: 1.0 Message-Id: <20240120-tui-regs-cleanup-v2-5-a3cccc6a3573@tromey.com> References: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> In-Reply-To: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@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: 97.122.68.157 X-Source-L: No X-Exim-ID: 1rRFzz-0049D4-1T X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-122-68-157.hlrn.qwest.net ([192.168.0.21]) [97.122.68.157]:47898 X-Source-Auth: tom+tromey.com X-Email-Count: 19 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfOgVlcAGJo8jqB+pKwFnLeEnj3uJPp1Ak3oNXp8vIFsI9yDHQ5LgnZ93we+W3Yu2JkLycVjI5KKQJJLlOsYxK5ebZebhs4hJWPOzCYjud7JMT/PqMm2r oKuFr845lqqlTPqxAtBcc1gHymY9yOjBrmfzGT0EkxU6+hVedtLWaO2vMmJaZuU+QnvdDhHe95sm4Fkv1SpdklhCTG6I9TwiG9s= X-Spam-Status: No, score=-3022.8 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. This patch changes this member in favor of having a single indication of the register's visibility -- a method with the same name. This change makes it clear that delete_data_content_windows is not needed, so this is removed as well. --- gdb/tui/tui-regs.c | 17 ++--------------- gdb/tui/tui-regs.h | 8 +++----- 2 files changed, 5 insertions(+), 20 deletions(-) diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c index bacb23ab298..12301552c34 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -268,7 +268,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. */ } @@ -346,23 +345,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].visible ()) 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) { @@ -400,7 +389,6 @@ tui_data_window::rerender (bool toplevel) else { erase_data_content (NULL); - delete_data_content_windows (); display_registers_from (0); } } @@ -425,7 +413,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); } } @@ -448,7 +435,7 @@ tui_data_window::check_register_values (frame_info_ptr 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.visible ()) data_item_win.rerender (handle.get (), m_item_width); } } diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h index e7125e457f5..1b0eaa2033b 100644 --- a/gdb/tui/tui-regs.h +++ b/gdb/tui/tui-regs.h @@ -44,11 +44,13 @@ struct tui_register_info void rerender (WINDOW *handle, int field_width); + bool visible () const + { return y > 0; } + /* Location. */ int x = 0; int y = 0; bool highlight = false; - bool visible = false; std::string content; private: @@ -130,10 +132,6 @@ struct tui_data_window : public tui_win_info past the register area (-1) is returned. */ int first_reg_element_no_inline (int line_no) const; - /* Delete all the item windows in the data window. This is usually - done when the data window is scrolled. */ - void delete_data_content_windows (); - void erase_data_content (const char *prompt); /* Information about each register in the current register group. */ From patchwork Sat Jan 20 18:23:17 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 84492 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 288EE3858439 for ; Sat, 20 Jan 2024 18:24:57 +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 A3A533858C3A for ; Sat, 20 Jan 2024 18:23:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A3A533858C3A 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 A3A533858C3A 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=1705775003; cv=none; b=OZwRKjKTKkSRTDLTRP3Z0UGhvk/TSII70FhucC1AQSBIO5kjPNY3RENLwexecq7q1qyaQRz9iA9y9XU6GXxmlz2W44v5ybVF//4usK3Sogh/wt84V1yMx2FCqt5VPiy0/A3sxt14Un1ulOxHhGrgtNEP9P0QzJb7PIM1hjk1RPQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705775003; c=relaxed/simple; bh=ryhf8U6LpQzwkQckPqxHDAX6YovuAk4tDCi9ojy3NkA=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=gD+ap3Fm2hP79r+JH5PHRz355seyEG1pG1rxfTTPZKPXVlyyPioyRiFEaWLhfO8PU8AbeI4x2y+adxotwFjhNNJcaHc0iQW48rA+2XGDQK990Mg5NIWZJRmLaXmqIlyHM3CDlPU4WB26NS8SzMgCaYIc8PJ8cBE2NMpccOEFli4= 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 R56urG1GIAxAkRG0IrhScl; Sat, 20 Jan 2024 18:23:38 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id RG00rKk30im6ERG00ry2G9; Sat, 20 Jan 2024 18:23:20 +0000 X-Authority-Analysis: v=2.4 cv=Qft1A+Xv c=1 sm=1 tr=0 ts=65ac0f98 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=IkcTkHD0fZMA:10 a=dEuoMetlWLkA:10 a=Qbun_eYptAEA:10 a=20KFwNOVAAAA:8 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=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To: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=XLqkGwk0S2FW4Nt8MRxPgKdzCfnI2xlRPv8wff0rtOs=; b=F6g+45/iGkk838rrBx/HHU6RZJ YwQnmgieRIrc4HgcWa/UAIvKAh373TCMib1Vy8HcjKk/St2UK+jchjYXPiROzyIgJ///9l5HFIZiW uSj8okDCovtNNHSienQTofnIa; Received: from 97-122-68-157.hlrn.qwest.net ([97.122.68.157]:47898 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 1rRFzz-0049D4-2r; Sat, 20 Jan 2024 11:23:19 -0700 From: Tom Tromey Date: Sat, 20 Jan 2024 11:23:17 -0700 Subject: [PATCH v2 06/14] Move scrollok call in register window MIME-Version: 1.0 Message-Id: <20240120-tui-regs-cleanup-v2-6-a3cccc6a3573@tromey.com> References: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> In-Reply-To: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> To: gdb-patches@sourceware.org Cc: Tom de Vries , Andrew Burgess 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: 97.122.68.157 X-Source-L: No X-Exim-ID: 1rRFzz-0049D4-2r X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-122-68-157.hlrn.qwest.net ([192.168.0.21]) [97.122.68.157]:47898 X-Source-Auth: tom+tromey.com X-Email-Count: 20 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfEuJJjv5IncvGMdP2lKfjAyDrwwgU3hVrgsyAtEpTFMerKpl3aQrI8q5I//5vgfMfiLaMmZrQB71znOd879Juzg4I9SZOG/ku8HNBsCe4ireWXnp/7N+ vYrw9k4VUqoGrFmA900NUI+JA3V4XdI8i2+eztXN556RVjeHviPwpHG05LRe/wG3VSYuFs9QZN8kEq5MOtwQHmRj5lctaDR9akk= X-Spam-Status: No, score=-3023.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_DNSWL_LOW, 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 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.) Tested-By: Tom de Vries Reviewed-By: Andrew Burgess --- 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 12301552c34..eeea03f87c1 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -236,6 +236,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) { @@ -448,10 +452,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 Sat Jan 20 18:23:18 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 84497 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 7C2723858415 for ; Sat, 20 Jan 2024 18:25:31 +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 6B8773858415 for ; Sat, 20 Jan 2024 18:23:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6B8773858415 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 6B8773858415 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=1705775005; cv=none; b=I7ClbuXgeuHXHUDxCD6zL6FrKekUUpLtUVjIXfgzBn6psavjNAnrQJi9pK1tbBG9hqT2OJ3rI+6cF/fGpa46ryatxand71hhRfVsXvfDgaKIWT8dVWva+mf4wUTtlEZrlbMOmQKRtB6PbWN0ds4/ChtEaPkM1PYA7RuWnKVNwH0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705775005; c=relaxed/simple; bh=0XS4Mh7m8k5zUQmgtBduCRwAPotFLMMOKCQOFssdnhI=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=jD8nzS7pcC9n461ZbdXNIP2AuYfY05d4gq8qorlkTbuSJzHD2TH6J+xdZHBRelAV3fy/RFrj6bU9hVd9yjO93UDHBYN4+gF+ICh8tLbziEU+6GKtMeihQpOADHyVXAMMobAiRBSoN9p/tVfe4LlDIhBI71BX5biYnbxjLXS+39U= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-6006a.ext.cloudfilter.net ([10.0.30.182]) by cmsmtp with ESMTPS id R8iLrXSbvMVQiRG01rUyhr; Sat, 20 Jan 2024 18:23:21 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id RG00rswtqYjq0RG00rBnkR; Sat, 20 Jan 2024 18:23:21 +0000 X-Authority-Analysis: v=2.4 cv=afxyIDkt c=1 sm=1 tr=0 ts=65ac0f99 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=IkcTkHD0fZMA:10 a=dEuoMetlWLkA:10 a=Qbun_eYptAEA:10 a=20KFwNOVAAAA:8 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=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To: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=kEs6CYYvePtVagEhX87kNmuWhb2sI1lycU+f1AAPGkA=; b=wV1xtSSh/3l8ADYsOcNXrHwvSC nJzQuIWbzD+faw091moCWK++vyNZgsouoJx3CJ+3V9P2SV7ySZ1ULLyVyJqzsJE/SadvLPAxHJRv1 EmSlBv+X63mtJrj/mD6L/r5fR; Received: from 97-122-68-157.hlrn.qwest.net ([97.122.68.157]:47898 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 1rRG00-0049D4-13; Sat, 20 Jan 2024 11:23:20 -0700 From: Tom Tromey Date: Sat, 20 Jan 2024 11:23:18 -0700 Subject: [PATCH v2 07/14] Simplify update_register_data MIME-Version: 1.0 Message-Id: <20240120-tui-regs-cleanup-v2-7-a3cccc6a3573@tromey.com> References: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> In-Reply-To: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> To: gdb-patches@sourceware.org Cc: Tom de Vries , Andrew Burgess 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: 97.122.68.157 X-Source-L: No X-Exim-ID: 1rRG00-0049D4-13 X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-122-68-157.hlrn.qwest.net ([192.168.0.21]) [97.122.68.157]:47898 X-Source-Auth: tom+tromey.com X-Email-Count: 23 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfHHNuv74hO/gHYoqu0f/b/oLv1AgfX2MLJVZNetTdrV+3aqBNe8jfyxSTi9fWWt6TjGPG3UajnztkaO+Yz5pmA0eh/mdhPz+u/3RZGslOAOSbPpilEHK kj1M0e/rd8PXh31d4spq6KN9mOPIDXdGM0XcgBwB+E5SCtTEwzvJs9WrxYeC0fz3fM7CEsMsLpycMm4JwKf6VI5e3Wz/mWZ8E7g= X-Spam-Status: No, score=-3022.8 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. Tested-By: Tom de Vries Reviewed-By: Andrew Burgess --- 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 eeea03f87c1..7af572c9da4 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 (nullptr)); - - /* 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 (); } @@ -194,40 +189,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 Sat Jan 20 18:23:19 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 84491 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 B4B3D385843B for ; Sat, 20 Jan 2024 18:24:54 +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 6EA7A3858417 for ; Sat, 20 Jan 2024 18:23:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6EA7A3858417 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 6EA7A3858417 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=1705775005; cv=none; b=JUqFOpwqGLzmMhvb7lL538Cxy6tm/OkfHpu/6qBwzGo1CmYNyceYnq/weVs4fa3CO6XTq3pUn7qFAZ20uTWcK/CswviXYI+KjUr5VicQMuO/hh11k3RgevLpYYJZ/+O7rOudrgfb/FFkVN34ZQVgUCtFUPLLFAVb93san0nC8nw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705775005; c=relaxed/simple; bh=ru7llIyspK/3AVUksTJwZc/EwIfRQjvCuVd5Pim8KaM=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=crJHFTimlycir8DvLQF5RyGOjJ6pv+ATcGJVdf8j+WGnZoE8nY1hVjjuVuinodRqjndpG7FUA8vyzExP6JHB14Pasqkdv20AVYT9ksaCsw5/UIcztERzdn2pQiaYbTnSgEju/UHVoX2RYvlISyEo0q6SO4JEw5dR2sS39XED0fM= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-5008a.ext.cloudfilter.net ([10.0.29.246]) by cmsmtp with ESMTPS id R8yMrcEfPTHHuRG02rPtvr; Sat, 20 Jan 2024 18:23:22 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id RG01rxDVBL3AmRG01rMHc5; Sat, 20 Jan 2024 18:23:21 +0000 X-Authority-Analysis: v=2.4 cv=Sdrky9du c=1 sm=1 tr=0 ts=65ac0f99 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=IkcTkHD0fZMA:10 a=dEuoMetlWLkA:10 a=Qbun_eYptAEA:10 a=20KFwNOVAAAA:8 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=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To: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=+NvxuJ43KdTt4Q+qQbZsthe8VuJ/0lhGdLyW3dg10Rw=; b=hUWfFYDpPAeZhpv1HcSyRe+hd7 WP8ABXLEDyzCD0ICo17POE/YceL7wfxKWA6mPoeF9W77QVh5Z3MgF62jwdQQaCUeg7Ik1+4qaPqOK VXyesLLafKvZIj2P0sjx89fxM; Received: from 97-122-68-157.hlrn.qwest.net ([97.122.68.157]:47898 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 1rRG00-0049D4-2W; Sat, 20 Jan 2024 11:23:20 -0700 From: Tom Tromey Date: Sat, 20 Jan 2024 11:23:19 -0700 Subject: [PATCH v2 08/14] Remove the TUI register window rerender overload MIME-Version: 1.0 Message-Id: <20240120-tui-regs-cleanup-v2-8-a3cccc6a3573@tromey.com> References: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> In-Reply-To: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> To: gdb-patches@sourceware.org Cc: Tom de Vries , Andrew Burgess 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: 97.122.68.157 X-Source-L: No X-Exim-ID: 1rRG00-0049D4-2W X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-122-68-157.hlrn.qwest.net ([192.168.0.21]) [97.122.68.157]:47898 X-Source-Auth: tom+tromey.com X-Email-Count: 26 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfObsdMYqHZEt73Ss298fLMCmgpvcRn4dpBDwy9xiVeZh8UWNS7wPAnrXEed8Dv5yJb/MYFfBpLhtg8bmVxEIDFsSZE/QA9n4+/aEeQVQrXvPiylzb5ni +Lct/dmMvR9MueM55CHaFB0n0U6gOmIMa4+RSStlTER8CZ+q7WYFbQt2oILZF/p8F7EBoTvpEwJbVBckLQ9I2+mzwoKBDMpgN6M= X-Spam-Status: No, score=-3022.8 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 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. Tested-By: Tom de Vries Reviewed-By: Andrew Burgess --- gdb/tui/tui-regs.c | 51 ++++++++++++++++++++++----------------------------- gdb/tui/tui-regs.h | 14 ++++++-------- 2 files changed, 28 insertions(+), 37 deletions(-) diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c index 7af572c9da4..52cf6b7efdf 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -165,30 +165,32 @@ 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. */ + +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")); m_current_group = nullptr; m_regs_content.clear (); + return; } - rerender (false); -} - + frame_info_ptr frame = get_selected_frame (nullptr); -/* Set the data window to display the registers of the register group - using the given frame. */ - -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. */ @@ -221,6 +223,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); @@ -357,29 +362,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 ()); } @@ -401,7 +395,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 1b0eaa2033b..7f1c30ca5d6 100644 --- a/gdb/tui/tui-regs.h +++ b/gdb/tui/tui-regs.h @@ -62,7 +62,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); @@ -87,11 +90,7 @@ struct tui_data_window : public tui_win_info { } - void rerender (bool toplevel); - void rerender () override - { - rerender (true); - } + void rerender () override; private: @@ -116,8 +115,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 Sat Jan 20 18:23:20 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 84496 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 272663858431 for ; Sat, 20 Jan 2024 18:25:27 +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 E006C385841B for ; Sat, 20 Jan 2024 18:23:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E006C385841B 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 E006C385841B 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=1705775005; cv=none; b=jDPiuIZgyUBw1OQjribIhHjCMVrdoInEpNNFDBQVACw5nb6SOasq555I8OgPkOcZKx8B+3H0KzzQ0R2qpTbpwDvbkqK8kQ+WbVjZ1VrKW44pztE/vZeUQyN+x7qZVg77xY2Mu03P6BLdAKnWi3Rj/xBsrPzQXW+UA74B+j59nxE= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705775005; c=relaxed/simple; bh=7xY1AyDD7XlcfHrKgSUTT7OYpibE9WQGwC8mtynYzZA=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=CzpybcLXUmNjBU8fu1i6ISAIy4942U1XgiRJzn9G2lA2LfjW02z0lWU9bGu8X4qxEHNA7uqQFPDesqTI06VW0G6Is0I8ueBIwestgODDOPeCm6EY9jLCHNt2GwoWX37L0c8002WrvKrebkCXFgiq9F3SLFBs/+dM6gQkQDjDaAw= 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 RBtDrY6m3MVQiRG03rUyiF; Sat, 20 Jan 2024 18:23:23 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id RG01rf30dV9xYRG02rjVhG; Sat, 20 Jan 2024 18:23:22 +0000 X-Authority-Analysis: v=2.4 cv=NfP1akP4 c=1 sm=1 tr=0 ts=65ac0f9a a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=IkcTkHD0fZMA:10 a=dEuoMetlWLkA:10 a=Qbun_eYptAEA:10 a=20KFwNOVAAAA:8 a=sQwJSirdjlXOo4QVnCoA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To: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=3y+lPndXTb8e/PdZ6h4AwnoSWujYN7fHtHyK+j866MI=; b=vLv/JdoUEzSgZejTzrfL+xQjw1 9ET5QXh0RRrxCl6SD1N+hrU1Y0hP5nQQi84yrsxOyJSni2Jn3+wIimHzuPqBPyht5SmofLm8ezaYT +fEhhaRKEAWR/i5vUUjtLw+BV; Received: from 97-122-68-157.hlrn.qwest.net ([97.122.68.157]:47898 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 1rRG01-0049D4-0o; Sat, 20 Jan 2024 11:23:21 -0700 From: Tom Tromey Date: Sat, 20 Jan 2024 11:23:20 -0700 Subject: [PATCH v2 09/14] Simplify tui_data_win::erase_data_content MIME-Version: 1.0 Message-Id: <20240120-tui-regs-cleanup-v2-9-a3cccc6a3573@tromey.com> References: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> In-Reply-To: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> To: gdb-patches@sourceware.org Cc: Tom de Vries , Andrew Burgess 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: 97.122.68.157 X-Source-L: No X-Exim-ID: 1rRG01-0049D4-0o X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-122-68-157.hlrn.qwest.net ([192.168.0.21]) [97.122.68.157]:47898 X-Source-Auth: tom+tromey.com X-Email-Count: 29 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfMRiHGXDCYET/gzNLdsNTgPGSJWdNj3Qgr3crmNzQYuDhtwvXJ1jcVmOnHlMPiehpgkLOJPsofwYsQj4XNvwT+rTQdaysM3hQR3oNxwUtMn9yWh0AXjv lGGkFnQpR7igv6nqt1qfUAH7itvJ3F9IdvqqZKHUQMC0K8hg62vWy4zORRBYmhnriauMt535mFNCTQ31AbhsZHw3/GfKc/oRDMk= X-Spam-Status: No, score=-3022.8 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 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. Tested-By: Tom de Vries Reviewed-By: Andrew Burgess --- 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 52cf6b7efdf..10d9bc6ef7d 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -347,21 +347,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. */ @@ -370,7 +368,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 7f1c30ca5d6..880f360bec6 100644 --- a/gdb/tui/tui-regs.h +++ b/gdb/tui/tui-regs.h @@ -130,7 +130,7 @@ struct tui_data_window : public tui_win_info past the register area (-1) is returned. */ int first_reg_element_no_inline (int line_no) const; - 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 Sat Jan 20 18:23:21 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 84494 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 A8EBE3858408 for ; Sat, 20 Jan 2024 18:25:09 +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 F3A8C3858419 for ; Sat, 20 Jan 2024 18:23:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org F3A8C3858419 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 F3A8C3858419 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=1705775005; cv=none; b=XA7cP0fw5POXyYig2QlHA8nzh2AM3X99Cpi9qxuf7+ODrXLKuCcsAIVLjRuGSPPm0FhpQi9jVzI+IUXjDbxK947Waj7/eKHS4iqL+q8g5x5J9uBoWKodCLqSQWiur9HoZNDzlnqi1QB4csjDM2VRAzzGCYBUKfvriWegtAwyWMI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705775005; c=relaxed/simple; bh=+HnYirxrXyYUkHIezhpl7y0Cv5XVqB7U4fsOlo9zoHw=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=Epi6QTfj7z5Ja8gfKvq+Hk+t8FABAdJeRBQlTw46/jhjAXe2JAHEqpcl5ppA428dz0KtkEx38iUBPVmkUnEj5nGPvpDJUoYGeev+vnywvkz7GXqHkn8w2qKVzAPl5F7inFaTIOO6jqyAffy+A696UuTNoDeFG++1eoZY/VOkJ64= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-6007a.ext.cloudfilter.net ([10.0.30.247]) by cmsmtp with ESMTPS id QymJra2s0THHuRG02rPtvv; Sat, 20 Jan 2024 18:23:22 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id RG02rChT0yxR5RG02rjHxL; Sat, 20 Jan 2024 18:23:22 +0000 X-Authority-Analysis: v=2.4 cv=JYOvEGGV c=1 sm=1 tr=0 ts=65ac0f9a a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=IkcTkHD0fZMA:10 a=dEuoMetlWLkA:10 a=Qbun_eYptAEA:10 a=20KFwNOVAAAA:8 a=RIfyzMFPzM5F-XPammcA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To: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=4h73+NrBmJRB3LheF/+pqZ4XXurwMsQNcUazyQqIbcU=; b=Z335z0wml1LKc33KRn5i7FpQx4 EjiI2k0UNScnVmnsYRcLw7GhcGcd9gqh0sVPv8rKMODCClUeMsX0TEl5+FdJ6Y2QUjRBlrf8pKwDm QrCy+C6ZoWzDem8HX72a8/4aP; Received: from 97-122-68-157.hlrn.qwest.net ([97.122.68.157]:47898 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 1rRG01-0049D4-2M; Sat, 20 Jan 2024 11:23:21 -0700 From: Tom Tromey Date: Sat, 20 Jan 2024 11:23:21 -0700 Subject: [PATCH v2 10/14] Remove tui_refreshing_registers MIME-Version: 1.0 Message-Id: <20240120-tui-regs-cleanup-v2-10-a3cccc6a3573@tromey.com> References: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> In-Reply-To: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> To: gdb-patches@sourceware.org Cc: Tom de Vries , Andrew Burgess 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: 97.122.68.157 X-Source-L: No X-Exim-ID: 1rRG01-0049D4-2M X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-122-68-157.hlrn.qwest.net ([192.168.0.21]) [97.122.68.157]:47898 X-Source-Auth: tom+tromey.com X-Email-Count: 32 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfCVKHeURaQYMgDUGiF4WhChg5lDy68NbR4b3ELflv86UzveEQDWi3ALV70XRhzHODW+k2ERmJxEWY1dUBuzTHJtb/yHvIBdUc3sZlsLqmrrGuFc1ThZS jxFsHdi+MRBPiDCeUmUSuNWmJ4ME5eVdB92lH/31W37t1hRFaEaRsl8+H40K735acXgqd9f9njjKxTnSQPXxVaNf0QuEc8xYBIo= X-Spam-Status: No, score=-3022.8 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. Tested-By: Tom de Vries Reviewed-By: Andrew Burgess --- 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 bd8f99b786b..3a4eda91aa3 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 Sat Jan 20 18:23:22 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 84499 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 925F53858427 for ; Sat, 20 Jan 2024 18:25:54 +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 CC11F3858431 for ; Sat, 20 Jan 2024 18:23:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CC11F3858431 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 CC11F3858431 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=1705775005; cv=none; b=oDUqVg1Xjk9s0hja/3/s1D/lpwXloW2XWiiXKcSTOlQBYiM+CwPIS3pJUXqs8Vzc1zGwX4VDvGsrDemU1wKRSX0RndfBTyGASokoAl5dHTmp5uchEX4dT7bUOZ4OO/0ollL/myCeBCeAwSxsmKgPB6tf9dq2B+EGMSULwStbkwk= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705775005; c=relaxed/simple; bh=ZnkqniglN35VfKkjHPN3LRAldptTelVQEGKfWm2o2Lk=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=C4y4/RN95ICT6WIWwinf74ReWygEqJwRAdc/XJ9sFQ5MP90C5hVqkxCCSmSar2xqLH/A++bqkjqEaYDF5pMTR9iVRJZOfjoAzKOtgHdeK6JmP/TCSTXljdhl3T0U0GVZD+ZsXJjXvBY31hHo431mzWI93JFFEHT4B9QygdDwuuU= 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 R8hHrXSR8MVQiRG03rUyiH; Sat, 20 Jan 2024 18:23:23 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id RG02rkWOe55BJRG02rhhky; Sat, 20 Jan 2024 18:23:22 +0000 X-Authority-Analysis: v=2.4 cv=QcR1A+Xv c=1 sm=1 tr=0 ts=65ac0f9a a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=IkcTkHD0fZMA:10 a=dEuoMetlWLkA:10 a=Qbun_eYptAEA:10 a=20KFwNOVAAAA:8 a=MICBDP_JAT3s7KRlVekA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To: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=pTaiC1UXuDKukFUuMedD4yGukWXKKtiOLWddRflHDns=; b=kmAHdNnMHbqHU7LBg12a7HBcHk 37p1e+THuuKavcQNJA4khk0ahLSYOxL+Q96YfcsiOOvPMcdO6NMB/COvU/ySkUQ2bWc5Yk+LRLguz tS96j1N+RLc5YDbHrGXACScJk; Received: from 97-122-68-157.hlrn.qwest.net ([97.122.68.157]:47898 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 1rRG02-0049D4-0b; Sat, 20 Jan 2024 11:23:22 -0700 From: Tom Tromey Date: Sat, 20 Jan 2024 11:23:22 -0700 Subject: [PATCH v2 11/14] Remove redundant check from tui_refresh_frame_and_register_information MIME-Version: 1.0 Message-Id: <20240120-tui-regs-cleanup-v2-11-a3cccc6a3573@tromey.com> References: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> In-Reply-To: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> To: gdb-patches@sourceware.org Cc: Tom de Vries , Andrew Burgess 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: 97.122.68.157 X-Source-L: No X-Exim-ID: 1rRG02-0049D4-0b X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-122-68-157.hlrn.qwest.net ([192.168.0.21]) [97.122.68.157]:47898 X-Source-Auth: tom+tromey.com X-Email-Count: 35 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfF/aQSf6oz0t6tvE3OG7fiE0bC0RsuWfaZY4+jdoEwrQNga6Tq4JyHWeyxtoMjyvNRY+dE+cAIwmHmb2qgILMzgumxQyltXriCSdnSqSQ2czVjT7msDL vxczti/kyS7DlNgl1Wk4sQp9flUaTYuA/evB7r/cwLpMibfoyC+uitohlTU8spEk3yKdW7S1kSktgQYsMlLAh1EUyAzdmS8qqNY= X-Spam-Status: No, score=-3022.8 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. Tested-By: Tom de Vries Reviewed-By: Andrew Burgess --- 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 3a4eda91aa3..fc7ffb4f202 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 Sat Jan 20 18:23:23 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 84500 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 0456E3858422 for ; Sat, 20 Jan 2024 18:26:19 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta36.uswest2.a.cloudfilter.net (omta36.uswest2.a.cloudfilter.net [35.89.44.35]) by sourceware.org (Postfix) with ESMTPS id 7E0833858401 for ; Sat, 20 Jan 2024 18:23:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7E0833858401 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 7E0833858401 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=35.89.44.35 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705775006; cv=none; b=ofVggileXou1nuXvSGnwK5S90KwNSat5jCWLvb56DBx3jQopitJNl48UK2DhAQGH7obvqhzVrrawXbg/VWGfqEFN0uLFQgqR55dLXy4FgcC7mBq2V0RlFzsiT+2osDnOLkY38IOn68mxgD0or7f6IeEuaJw8ts7xExLoR1SaIww= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705775006; c=relaxed/simple; bh=iFa1xzmArRJA7814+q4/lvUUS+RhDV/rsc52TNk3vK8=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=aQVc0Frhb9egcSmU2d/xiVtbeDPfmt8I0VZzoGhHuYco2d6AVUf7T1YX52AH/l8LGMM0PoASFLKUQO2RMiVmEY3nYMzUDm14NwGmvUQhO+Ih3UmmfE4qq3KNHSf3AMBO+WQxSbVP601kyaHfbiF5w4q4CLY2nfrU9ccwAeLQPNY= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-5002a.ext.cloudfilter.net ([10.0.29.215]) by cmsmtp with ESMTPS id R4OjrLksNCF6GRG04r7zu1; Sat, 20 Jan 2024 18:23:24 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id RG02rk8uJBnVCRG03rRzy2; Sat, 20 Jan 2024 18:23:23 +0000 X-Authority-Analysis: v=2.4 cv=H+TIfsUi c=1 sm=1 tr=0 ts=65ac0f9b a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=IkcTkHD0fZMA:10 a=dEuoMetlWLkA:10 a=Qbun_eYptAEA:10 a=20KFwNOVAAAA:8 a=rnTf4ljxV6_8qr1Cu6kA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To: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=ZbFw5UNXgve3LVNT+D3Nkk0CMNDEPQrFDFG0U5cSSN8=; b=OZ/k+eb20LtV1jsA7vs0G1ROQr kOpsJhZ206/xzt1H6HJ7tDlNpTatsFLd5uoQgeMdGi7W4cAmpsyVrHO94hgFxvTkf8QKerGG4Dd7s CUcJABmgFNaQb+rGykv33p//A; Received: from 97-122-68-157.hlrn.qwest.net ([97.122.68.157]:47898 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 1rRG02-0049D4-1u; Sat, 20 Jan 2024 11:23:22 -0700 From: Tom Tromey Date: Sat, 20 Jan 2024 11:23:23 -0700 Subject: [PATCH v2 12/14] Return void from tui_show_frame_info MIME-Version: 1.0 Message-Id: <20240120-tui-regs-cleanup-v2-12-a3cccc6a3573@tromey.com> References: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> In-Reply-To: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> To: gdb-patches@sourceware.org Cc: Tom de Vries , Andrew Burgess 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: 97.122.68.157 X-Source-L: No X-Exim-ID: 1rRG02-0049D4-1u X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-122-68-157.hlrn.qwest.net ([192.168.0.21]) [97.122.68.157]:47898 X-Source-Auth: tom+tromey.com X-Email-Count: 38 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfEY+jUWCuO/ioS8FcWLa5SbSUjtw0T14nceE+d49SVa7tGxcRzV5mdpEsqMJTnfxYegPoRaxgWctCWWh5ZoBCGHVEuZyuibGYjZms2+GpxwejM1xmex9 AIIZ6bCd4GpX48Fia+2Yblij5dCA0YBO548+CQISmAiHHISOGPjQSJFXD4fJMT4haI9LxCJG4pfRWF35vGYd7+oyhVAy+S5QQq8= X-Spam-Status: No, score=-3022.8 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. Tested-By: Tom de Vries Reviewed-By: Andrew Burgess --- gdb/tui/tui-status.c | 16 ++++++---------- gdb/tui/tui-status.h | 2 +- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/gdb/tui/tui-status.c b/gdb/tui/tui-status.c index e61bf71c600..df4675fe5df 100644 --- a/gdb/tui/tui-status.c +++ b/gdb/tui/tui-status.c @@ -262,13 +262,11 @@ tui_status_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 status_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 (!status_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) status_changed_p = tui_location.set_location (NULL, sal, ""); if (!status_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-status.h b/gdb/tui/tui-status.h index 4a0f59a2eaa..efef5375e86 100644 --- a/gdb/tui/tui-status.h +++ b/gdb/tui/tui-status.h @@ -51,6 +51,6 @@ struct tui_status_window }; extern void tui_show_status_content (void); -extern bool tui_show_frame_info (frame_info_ptr); +extern void tui_show_frame_info (frame_info_ptr); #endif /* TUI_TUI_STATUS_H */ From patchwork Sat Jan 20 18:23:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 84498 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 B8EA33858434 for ; Sat, 20 Jan 2024 18:25:33 +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 8E60D3858418 for ; Sat, 20 Jan 2024 18:23:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8E60D3858418 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 8E60D3858418 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=1705775008; cv=none; b=c113dKq9+9bm4pl+oN5rWBVhGhC5kvrnphfAVvDXgVS0xETUtNnQ8OffENLHFfd/9JeAMATM/tCNiuId7+/Jqo/95IJ1KWNMlQ+9tmGFn47yKpwyFWWryDKhWu9pLr56V6hAgtax9hXK9muQk6Hu09Hr8yCJg4Nm031+l2k9noI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705775008; c=relaxed/simple; bh=vnY6BI/VPIW1l0p2TNogKbQtn/iWEewHDrjdoP+HBq4=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=MtYAndAAvnc0CDNa4yVij1czl1f5/q1vBLEgiMtM8YsqhCBcImZTrW3M4ywhrr5rOCNC6NS6f37ztA01ybkjQZRxe6z/P3MsT+aWbXn4Rt/5O8qJgpH8g862ZFRy2kz/UravlwIqS8xVAssXRliYlCkuQ9ipouWALOXZI1Bg/bw= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-5003a.ext.cloudfilter.net ([10.0.29.159]) by cmsmtp with ESMTPS id QymLrogRioMN9RG04rfB6A; Sat, 20 Jan 2024 18:23:24 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id RG03rUglZl5UwRG03rD5KY; Sat, 20 Jan 2024 18:23:24 +0000 X-Authority-Analysis: v=2.4 cv=daKTYFbe c=1 sm=1 tr=0 ts=65ac0f9c a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=IkcTkHD0fZMA:10 a=dEuoMetlWLkA:10 a=Qbun_eYptAEA:10 a=20KFwNOVAAAA:8 a=RXDwc1yr-u66nV3lxGYA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To: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=NpjRB3Abw2fuL6G1kY0CC7+zfXTRR3NKbkxhrz30BJ8=; b=aRp8wnnQI1f87kSKNfMGe8gOwn sHp8nQlQSR3z65ODRjf5za4s6+lmwrt7PdY2BitxW1jofQwn9aqV2CIaZcIFOhncVRZPplW/hpUZZ wjNJLXHprY4NlGd5F4vTX5Wjm; Received: from 97-122-68-157.hlrn.qwest.net ([97.122.68.157]:47898 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 1rRG03-0049D4-07; Sat, 20 Jan 2024 11:23:23 -0700 From: Tom Tromey Date: Sat, 20 Jan 2024 11:23:24 -0700 Subject: [PATCH v2 13/14] Rename show_registers -> set_register_group MIME-Version: 1.0 Message-Id: <20240120-tui-regs-cleanup-v2-13-a3cccc6a3573@tromey.com> References: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> In-Reply-To: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> To: gdb-patches@sourceware.org Cc: Tom de Vries , Andrew Burgess 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: 97.122.68.157 X-Source-L: No X-Exim-ID: 1rRG03-0049D4-07 X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-122-68-157.hlrn.qwest.net ([192.168.0.21]) [97.122.68.157]:47898 X-Source-Auth: tom+tromey.com X-Email-Count: 41 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfA4pWQvWjJBRJLNFmiD9wmKMbwOioTWZXMzyIEDrXiafmitLV9v5N5O0UH3uj8L6V8ln503g//dUj1G0fX/PCj6iJmFB7xJZ14sHnjEwK0KqKB88cSIU ciGvJ2TxD3N0UJG23rv7K//EV6/5eXiHxoj/Tp0vL5+gToS2RbzbfX170bSh44ABaZfwxyK2NlRQBuSSOurkKi0fozTLSFGM21s= X-Spam-Status: No, score=-3022.8 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 renames a method on the TUI register window to reflect its real purpose. Tested-By: Tom de Vries Reviewed-By: Andrew Burgess --- 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 10d9bc6ef7d..fa4d10d1039 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 (); @@ -404,7 +404,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) @@ -542,7 +542,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 880f360bec6..caa9d395bec 100644 --- a/gdb/tui/tui-regs.h +++ b/gdb/tui/tui-regs.h @@ -76,7 +76,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 Sat Jan 20 18:23:25 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 84495 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 7AD4538582B8 for ; Sat, 20 Jan 2024 18:25:19 +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 CBE63385840B for ; Sat, 20 Jan 2024 18:23:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CBE63385840B 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 CBE63385840B 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=1705775008; cv=none; b=UQThA2vnE+MPT3A/t3rDpewo8dsrpfrBjQkIoN+/fOzVG1plQLYTBaVc+dvmaVh3Xo3JW5hjIuArzg7Vm0JAVzpR/sOOi5Ys4jiI67/WpSFvrReIudimrpFmWrf9Gip9Jpg5pwiURRl075SondbpjWv4SbWOAh++OxOmYbVLgAg= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705775008; c=relaxed/simple; bh=wfCGJ0NVFwNVdgFy2PZirAthM31KPCAR2uTWybFJz/o=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=cNP2Qje7EZIFSA/SNvaURP4hrQjAce6pZ7iCQ8tlHh2ExG7Y136jShR9R4gWSS+jk5zd974+kiVqzDEyu5kIGiUHSrD3k/NCNiDN4FUN4SGDnjyuOh7/VUXV+XCz8UYLLDXF7bvFrwQSjqhunldSxzDvFP4QOX3zUzavBcXbGFM= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-6005a.ext.cloudfilter.net ([10.0.30.201]) by cmsmtp with ESMTPS id R4OhrYnHP9gG6RG04rvSYH; Sat, 20 Jan 2024 18:23:24 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id RG03rU8A41UTRRG04rJJVW; Sat, 20 Jan 2024 18:23:24 +0000 X-Authority-Analysis: v=2.4 cv=ZOXEJF3b c=1 sm=1 tr=0 ts=65ac0f9c a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=IkcTkHD0fZMA:10 a=dEuoMetlWLkA:10 a=Qbun_eYptAEA:10 a=CCpqsmhAAAAA:8 a=20KFwNOVAAAA: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=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To: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=3wwZ4rL7RqzbBFL8bn0PVIrNUBmGQ8b068ESliy2NCs=; b=nVhReJPE/VD+/ONi+D5uYYzkmq FJS32ldX+OA2fK3sFeF293u7hN8QO2hsmBny44Bh+FGFaRXi3dE9c+Q1PyRV3SexlKiW2FM4VGkzp g/4yTDOfYkPTGQp9jClKyJnDA; Received: from 97-122-68-157.hlrn.qwest.net ([97.122.68.157]:47898 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 1rRG03-0049D4-1U; Sat, 20 Jan 2024 11:23:23 -0700 From: Tom Tromey Date: Sat, 20 Jan 2024 11:23:25 -0700 Subject: [PATCH v2 14/14] Update TUI register window when the inferior exits MIME-Version: 1.0 Message-Id: <20240120-tui-regs-cleanup-v2-14-a3cccc6a3573@tromey.com> References: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> In-Reply-To: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> To: gdb-patches@sourceware.org Cc: Tom de Vries , Andrew Burgess 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: 97.122.68.157 X-Source-L: No X-Exim-ID: 1rRG03-0049D4-1U X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-122-68-157.hlrn.qwest.net ([192.168.0.21]) [97.122.68.157]:47898 X-Source-Auth: tom+tromey.com X-Email-Count: 44 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfNvc1bSmKLiAhxbdi1Ux0DLHikMVpG9dmxtczpygB4krS+uAQTisCsmYOoQnWFg3CXSqOrneAj/fJXloZYn2L2rXeLVNvOMz/nw6ML42+xrr+nsb+pvi KiGSCUYYzz14EWg5Ry4bG5r78N/u+CRBPuokqiUY0cXyXetjLczCouJmAuRva0w003vDsl6j+TyoWgEAw2gGB5K+aTOwJnBQzwo= X-Spam-Status: No, score=-3022.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_SHORT, 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 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 Tested-By: Tom de Vries Reviewed-By: Andrew Burgess --- 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 c325952185f..ea78b57d1a7 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 fc7ffb4f202..28d0b742ed7 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 fa4d10d1039..504aed4b81f 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, m_regno); - highlight = content != new_content; - content = std::move (new_content); - } + std::string new_content = tui_register_format (frame, m_regno); + highlight = content != new_content; + content = std::move (new_content); } /* See tui-regs.h. */ @@ -185,13 +182,22 @@ tui_data_window::update_register_data (const reggroup *group) { set_title (_("Registers")); 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 ())); @@ -199,7 +205,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++) @@ -403,24 +408,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.visible ()) - 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.visible ()) + 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 caa9d395bec..9d9cae40fe0 100644 --- a/gdb/tui/tui-regs.h +++ b/gdb/tui/tui-regs.h @@ -139,6 +139,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 */