From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by sourceware.org (Postfix) with ESMTPS id A9F163858D20 for ; Sun, 26 Nov 2023 07:52:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A9F163858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A9F163858D20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=195.135.223.130 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700985167; cv=none; b=a/rN+iLqZHTzxFpVmmZd8lwIbRzFYmsCHebeQq1adNIss8hURAdONfudHMKA41CAhFA5xJiEupsa3OTl7yw9QkMVVW+m8Nh1kT1FLEBPKnv4eDfdhfeF+ISo5nySDHdDNdByc9Ia+9Rr+KYvX6PAjzqJAsPvQnuVQPbiS4Nj/ss= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700985167; c=relaxed/simple; bh=pHsrzvD9gX6ABuWzzMM+e2PPBgMxL5tdGB1RiRzIe/M=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=Dc5DAl5hal29yIjjQDUKVrEAi27mfz/RZY011Dp8xcQpR5io9n/z4eTj6Y1W6mOaFgf9UXf1NzVpmektllNtm+NKP3KyWyUY5f3naXozA+zNyQz6iJB+tHIv/eH8LDBL2MmKSDxhbCt+OwrRNpmDekD82jwytgJXMcNNAja36bQ= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 7843621C4D; Sun, 26 Nov 2023 07:52:44 +0000 (UTC) Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 5CFAB13488; Sun, 26 Nov 2023 07:52:44 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id 6pVfFUz5YmXcZQAAD6G6ig (envelope-from ); Sun, 26 Nov 2023 07:52:44 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [PATCH v2] [gdb/tui] Show regs when switching to regs layout Date: Sun, 26 Nov 2023 08:52:50 +0100 Message-Id: <20231126075250.31557-1-tdevries@suse.de> X-Mailer: git-send-email 2.35.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spamd-Bar: ++++++++++++++++++ X-Spam-Score: 18.29 X-Rspamd-Server: rspamd1 X-Rspamd-Queue-Id: 7843621C4D Authentication-Results: smtp-out1.suse.de; dkim=none; dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.de (policy=none); spf=softfail (smtp-out1.suse.de: 2a07:de40:b281:104:10:150:64:97 is neither permitted nor denied by domain of tdevries@suse.de) smtp.mailfrom=tdevries@suse.de X-Spamd-Result: default: False [18.29 / 50.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; TO_DN_SOME(0.00)[]; R_MISSING_CHARSET(2.50)[]; BROKEN_CONTENT_TYPE(1.50)[]; R_SPF_SOFTFAIL(4.60)[~all:c]; RCVD_COUNT_THREE(0.00)[3]; MX_GOOD(-0.01)[]; RCPT_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(2.20)[]; MIME_TRACE(0.00)[0:+]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_SPAM_SHORT(3.00)[1.000]; MIME_GOOD(-0.10)[text/plain]; DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received]; NEURAL_SPAM_LONG(3.50)[0.999]; MID_CONTAINS_FROM(1.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; RCVD_TLS_ALL(0.00)[]; DMARC_POLICY_SOFTFAIL(0.10)[suse.de : No valid SPF, No valid DKIM,none] X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_STATUS,KAM_SHORT,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 List-Id: When starting gdb in CLI mode, running to main and switching into the TUI regs layout: ... $ gdb -q a.out -ex start -ex "layout regs" ... we get: ... +---------------------------------+ | | | [ Register Values Unavailable ] | | | +---------------------------------+ ... Fix this by handling this case in tui_data_window::rerender. Tested on x86_64-linux. PR tui/28600 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28600 --- gdb/testsuite/gdb.tui/regs.exp | 10 ++++++---- gdb/tui/tui-regs.c | 17 ++++++++++++++++- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/gdb/testsuite/gdb.tui/regs.exp b/gdb/testsuite/gdb.tui/regs.exp index 520f6ddba96..0be99625b9f 100644 --- a/gdb/testsuite/gdb.tui/regs.exp +++ b/gdb/testsuite/gdb.tui/regs.exp @@ -41,10 +41,12 @@ Term::command "layout regs" Term::check_box "register box" 0 0 80 8 Term::check_box "source box in regs layout" 0 7 80 8 -set text [Term::get_line 1] -# Just check for any register window content at all. -Term::check_contents "any register contents" "\\|.*\[^ \].*\\|" - +# The current frame is main, check that registers are available. +set re_reg_vals_unavailable \ + [string_to_regexp {[ Register Values Unavailable ]}] +gdb_assert \ + { ![Term::check_region_contents_p 0 0 80 8 $re_reg_vals_unavailable] } \ + "Register values available" # Check that we can successfully cause the register window to appear # using the 'tui reg next' and 'tui reg prev' commands. diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c index 01538d49961..fe9cd5ac722 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -417,14 +417,29 @@ tui_data_window::erase_data_content (const char *prompt) void tui_data_window::rerender () { + /* Calling check_register_value calls rerender again. We use this counter + to prevent enless recursion. */ + static int in_rerender; + in_rerender++; + if (m_regs_content.empty ()) - erase_data_content (_("[ Register Values Unavailable ]")); + { + if (has_stack_frames () && in_rerender == 1) + { + frame_info_ptr fi = get_selected_frame (NULL); + check_register_values (fi); + } + else + erase_data_content (_("[ Register Values Unavailable ]")); + } else { erase_data_content (NULL); delete_data_content_windows (); display_registers_from (0); } + + in_rerender--; } base-commit: 476bf7d5e6661b06eb9f8de9258cf48fd81919af -- 2.35.3