aboutsummaryrefslogtreecommitdiff
path: root/gdb/tui/tui-regs.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2023-12-16 19:57:57 -0700
committerTom Tromey <tom@tromey.com>2024-02-08 12:15:39 -0700
commit45a57c1ea82afb1eb4766f115aedadd6efa543c7 (patch)
tree46df44a3978dec07203c81a5f293a44d35da83c7 /gdb/tui/tui-regs.c
parent074b58b4dcbc395633f3bcfa1e4c990e0d942e8e (diff)
downloadbinutils-45a57c1ea82afb1eb4766f115aedadd6efa543c7.zip
binutils-45a57c1ea82afb1eb4766f115aedadd6efa543c7.tar.gz
binutils-45a57c1ea82afb1eb4766f115aedadd6efa543c7.tar.bz2
Simplify update_register_data
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 <tdevries@suse.de> Reviewed-By: Andrew Burgess <aburgess@redhat.com> Approved-By: Andrew Burgess <aburgess@redhat.com>
Diffstat (limited to 'gdb/tui/tui-regs.c')
-rw-r--r--gdb/tui/tui-regs.c57
1 files changed, 21 insertions, 36 deletions
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
index eeea03f..7af572c 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 &reg : m_regs_content)
- reg.update (frame);
+ m_regs_content.emplace_back (regnum, frame);
}
}