diff --git a/gdb/arch-utils.c b/gdb/arch-utils.c index 60a50ea5b2c..c64584c5760 100644 --- a/gdb/arch-utils.c +++ b/gdb/arch-utils.c @@ -1479,6 +1479,8 @@ gdbarch_find_by_info (struct gdbarch_info info) if (gdbarch_debug) gdbarch_dump (new_gdbarch, gdb_stdlog); + gdb::observers::new_architecture.notify (new_gdbarch); + return new_gdbarch; } diff --git a/gdb/inferior.c b/gdb/inferior.c index efe57cceae3..1778723863e 100644 --- a/gdb/inferior.c +++ b/gdb/inferior.c @@ -179,7 +179,6 @@ inferior::set_arch (gdbarch *arch) gdb_assert (arch != nullptr); gdb_assert (gdbarch_initialized_p (arch)); m_gdbarch = arch; - gdb::observers::architecture_changed.notify (this, arch); process_stratum_target *proc_target = this->process_target (); if (proc_target != nullptr) diff --git a/gdb/observable.c b/gdb/observable.c index 09613b2ddda..f2e65b11604 100644 --- a/gdb/observable.c +++ b/gdb/observable.c @@ -52,7 +52,7 @@ DEFINE_OBSERVABLE (about_to_proceed); DEFINE_OBSERVABLE (breakpoint_created); DEFINE_OBSERVABLE (breakpoint_deleted); DEFINE_OBSERVABLE (breakpoint_modified); -DEFINE_OBSERVABLE (architecture_changed); +DEFINE_OBSERVABLE (new_architecture); DEFINE_OBSERVABLE (thread_ptid_changed); DEFINE_OBSERVABLE (inferior_added); DEFINE_OBSERVABLE (inferior_appeared); diff --git a/gdb/observable.h b/gdb/observable.h index acb05e9b535..a535eedcd38 100644 --- a/gdb/observable.h +++ b/gdb/observable.h @@ -153,10 +153,9 @@ extern observable breakpoint_deleted; is the modified breakpoint. */ extern observable breakpoint_modified; -/* INF's architecture has changed. The argument NEWARCH is a - pointer to the new architecture. */ -extern observable - architecture_changed; +/* GDB has instantiated a new architecture, NEWARCH is a pointer to the new + architecture. */ +extern observable new_architecture; /* The thread's ptid has changed. The OLD_PTID parameter specifies the old value, and NEW_PTID specifies the new value. */ diff --git a/gdb/python/py-unwind.c b/gdb/python/py-unwind.c index f8b142dd52c..ee50c51b531 100644 --- a/gdb/python/py-unwind.c +++ b/gdb/python/py-unwind.c @@ -945,7 +945,7 @@ static const registry::key pyuw_gdbarch_data; intermediary. */ static void -pyuw_on_new_gdbarch (inferior *inf, gdbarch *newarch) +pyuw_on_new_gdbarch (gdbarch *newarch) { struct pyuw_gdbarch_data_type *data = pyuw_gdbarch_data.get (newarch); if (data == nullptr) @@ -974,8 +974,7 @@ pyuw_on_new_gdbarch (inferior *inf, gdbarch *newarch) static int CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION gdbpy_initialize_unwind (void) { - gdb::observers::architecture_changed.attach (pyuw_on_new_gdbarch, - "py-unwind"); + gdb::observers::new_architecture.attach (pyuw_on_new_gdbarch, "py-unwind"); if (PyType_Ready (&pending_frame_object_type) < 0) return -1;