diff options
author | Simon Marchi <simon.marchi@efficios.com> | 2023-09-29 14:24:37 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@efficios.com> | 2023-10-10 10:44:35 -0400 |
commit | 72c4529c85907a5e1e04960ff1362a5a185553a0 (patch) | |
tree | b7828d3aa544952ed62c4ec8833e1d7de1f0de94 /gdb/arch-utils.c | |
parent | 97153a2bbfc59d33c1031526e63b06725862ba6b (diff) | |
download | gdb-72c4529c85907a5e1e04960ff1362a5a185553a0.zip gdb-72c4529c85907a5e1e04960ff1362a5a185553a0.tar.gz gdb-72c4529c85907a5e1e04960ff1362a5a185553a0.tar.bz2 |
gdb: move set_target_gdbarch to inferior::set_arch
set_target_gdbarch is basically a setter for the current inferior's
arch, that notifies other parts of GDB of the architecture change. Move
the code of set_target_gdbarch to the inferior::set_arch method.
Add gdbarch_initialized_p, so we can keep the assertion.
Change-Id: I276e28eafd4740c94bc5233c81a86c01b4a6ae90
Reviewed-By: John Baldwin <jhb@FreeBSD.org>
Approved-By: Andrew Burgess <aburgess@redhat.com>
Diffstat (limited to 'gdb/arch-utils.c')
-rw-r--r-- | gdb/arch-utils.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/gdb/arch-utils.c b/gdb/arch-utils.c index b2b265a..5768259 100644 --- a/gdb/arch-utils.c +++ b/gdb/arch-utils.c @@ -625,7 +625,8 @@ gdbarch_update_p (struct gdbarch_info info) "New architecture %s (%s) selected\n", host_address_to_string (new_gdbarch), gdbarch_bfd_arch_info (new_gdbarch)->printable_name); - set_target_gdbarch (new_gdbarch); + + current_inferior ()->set_arch (new_gdbarch); return 1; } @@ -657,7 +658,8 @@ set_gdbarch_from_file (bfd *abfd) if (gdbarch == NULL) error (_("Architecture of file not recognized.")); - set_target_gdbarch (gdbarch); + + current_inferior ()->set_arch (gdbarch); } /* Initialize the current architecture. Update the ``set @@ -1222,7 +1224,6 @@ gdbarch_obstack_strdup (struct gdbarch *arch, const char *string) return obstack_strdup (&arch->obstack, string); } - /* Free a gdbarch struct. This should never happen in normal operation --- once you've created a gdbarch, you keep it around. However, if an architecture's init function encounters an error @@ -1481,17 +1482,12 @@ gdbarch_find_by_info (struct gdbarch_info info) return new_gdbarch; } -/* Make the specified architecture current. */ +/* See gdbarch.h. */ -void -set_target_gdbarch (struct gdbarch *new_gdbarch) +bool +gdbarch_initialized_p (gdbarch *arch) { - gdb_assert (new_gdbarch != NULL); - gdb_assert (new_gdbarch->initialized_p); - current_inferior ()->set_arch (new_gdbarch); - gdb::observers::architecture_changed.notify (current_inferior (), - new_gdbarch); - registers_changed (); + return arch->initialized_p; } /* Return the current inferior's arch. */ |