gdb: add inferior parameter to architecture_changed observable

This is to make it explicit which inferior's architecture just changed,
and that the callbacks should not assume it is the current inferior.

Update the only caller, pyuw_on_new_gdbarch, to add the parameter,
although it doesn't use it currently.

Change-Id: Ieb7f21377e4252cc6e7b1ce2cc812cd1a1840e0e
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:36 -04:00
parent 27b1f19f8f
commit 97153a2bbf
3 changed files with 6 additions and 4 deletions

View File

@@ -1489,7 +1489,8 @@ set_target_gdbarch (struct gdbarch *new_gdbarch)
gdb_assert (new_gdbarch != NULL); gdb_assert (new_gdbarch != NULL);
gdb_assert (new_gdbarch->initialized_p); gdb_assert (new_gdbarch->initialized_p);
current_inferior ()->set_arch (new_gdbarch); current_inferior ()->set_arch (new_gdbarch);
gdb::observers::architecture_changed.notify (new_gdbarch); gdb::observers::architecture_changed.notify (current_inferior (),
new_gdbarch);
registers_changed (); registers_changed ();
} }

View File

@@ -153,9 +153,10 @@ extern observable<struct breakpoint */* b */> breakpoint_deleted;
is the modified breakpoint. */ is the modified breakpoint. */
extern observable<struct breakpoint */* b */> breakpoint_modified; extern observable<struct breakpoint */* b */> breakpoint_modified;
/* The current architecture has changed. The argument NEWARCH is a /* INF's architecture has changed. The argument NEWARCH is a
pointer to the new architecture. */ pointer to the new architecture. */
extern observable<struct gdbarch */* newarch */> architecture_changed; extern observable<inferior */* inf */, struct gdbarch */* newarch */>
architecture_changed;
/* The thread's ptid has changed. The OLD_PTID parameter specifies /* The thread's ptid has changed. The OLD_PTID parameter specifies
the old value, and NEW_PTID specifies the new value. */ the old value, and NEW_PTID specifies the new value. */

View File

@@ -945,7 +945,7 @@ static const registry<gdbarch>::key<pyuw_gdbarch_data_type> pyuw_gdbarch_data;
intermediary. */ intermediary. */
static void static void
pyuw_on_new_gdbarch (struct gdbarch *newarch) pyuw_on_new_gdbarch (inferior *inf, gdbarch *newarch)
{ {
struct pyuw_gdbarch_data_type *data = pyuw_gdbarch_data.get (newarch); struct pyuw_gdbarch_data_type *data = pyuw_gdbarch_data.get (newarch);
if (data == nullptr) if (data == nullptr)