[5/5] gdb: scope down registers_changed call in inferior::set_arch
Checks
Commit Message
inferior::set_arch calls registers_changed, which invalidates all
regcaches. It would be enough to invalidate only regcaches of threads
belonging to this inferior. Call registers_changed_ptid instead, with
the proper process target / ptid. If the inferior does not have a
process target, there should be no regcaches for that inferior, so no
need to invalidate anything.
Change-Id: Id8b5500acb7f373b01a534f16d3a7d028dc0d882
---
gdb/inferior.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
@@ -180,7 +180,10 @@ inferior::set_arch (gdbarch *arch)
gdb_assert (gdbarch_initialized_p (arch));
m_gdbarch = arch;
gdb::observers::architecture_changed.notify (this, arch);
- registers_changed ();
+
+ process_stratum_target *proc_target = this->process_target ();
+ if (proc_target != nullptr)
+ registers_changed_ptid (proc_target, ptid_t (this->pid));
}
void