mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-12-19 01:19:41 +08:00
[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 <tom@tromey.com> PR tui/28600 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28600
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -75,7 +75,11 @@ protected:
|
||||
{
|
||||
}
|
||||
|
||||
void rerender () override;
|
||||
void rerender (bool toplevel);
|
||||
void rerender () override
|
||||
{
|
||||
rerender (true);
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user