From 86a6f9a9fb112614c15cc17630b29fbc62d3bca5 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Sat, 16 Dec 2023 09:31:29 +0100 Subject: [gdb/tui] Show regs when switching to regs layout 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. Approved-By: Tom Tromey PR tui/28600 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28600 --- gdb/tui/tui-regs.c | 14 +++++++++++--- gdb/tui/tui-regs.h | 6 +++++- 2 files changed, 16 insertions(+), 4 deletions(-) (limited to 'gdb/tui') diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c index ba801dd..4ed3a2e 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -192,7 +192,7 @@ tui_data_window::show_registers (const reggroup *group) m_regs_content.clear (); } - rerender (); + rerender (false); } @@ -415,10 +415,18 @@ tui_data_window::erase_data_content (const char *prompt) /* See tui-regs.h. */ void -tui_data_window::rerender () +tui_data_window::rerender (bool toplevel) { if (m_regs_content.empty ()) - erase_data_content (_("[ Register Values Unavailable ]")); + { + if (toplevel && has_stack_frames ()) + { + frame_info_ptr fi = get_selected_frame (NULL); + check_register_values (fi); + } + else + erase_data_content (_("[ Register Values Unavailable ]")); + } else { erase_data_content (NULL); diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h index 5adff63..1abd22c 100644 --- a/gdb/tui/tui-regs.h +++ b/gdb/tui/tui-regs.h @@ -75,7 +75,11 @@ protected: { } - void rerender () override; + void rerender (bool toplevel); + void rerender () override + { + rerender (true); + } private: -- cgit v1.1