From: Simon Marchi Date: Fri, 29 Sep 2023 18:24:39 +0000 (-0400) Subject: gdb: scope down registers_changed call in inferior::set_arch X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d6bfbb5256e33c356e85dfa5de7d3eaa20714ddd;p=binutils-gdb.git 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 Approved-By: Andrew Burgess --- diff --git a/gdb/inferior.c b/gdb/inferior.c index 21795a0d8a4..efe57cceae3 100644 --- a/gdb/inferior.c +++ b/gdb/inferior.c @@ -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