gdb: scope down registers_changed call in inferior::set_arch

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
Reviewed-By: John Baldwin <jhb@FreeBSD.org>
Approved-By: Andrew Burgess <aburgess@redhat.com>
This commit is contained in:
Simon Marchi
2023-09-29 14:24:39 -04:00
parent 99d9c3b92c
commit d6bfbb5256

View File

@@ -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