This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Remove only use of current_inferior ()->gdbarch outside of gdbarch.*
- From: Doug Evans <xdje42 at gmail dot com>
- To: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Fri, 28 Aug 2015 08:03:53 -0700
- Subject: Re: [PATCH] Remove only use of current_inferior ()->gdbarch outside of gdbarch.*
- Authentication-results: sourceware.org; auth=none
- References: <m3d1y8f0yl dot fsf at sspiff dot org>
On Thu, Aug 27, 2015 at 10:15 PM, Doug Evans <xdje42@gmail.com> wrote:
> Hi.
>
> target_gdbarch is a magical thing, there are different kinds of arches:
> for multiarch systems (e.g., call) which arch you use for certain
> struct gdbarch API calls is important.
>
> E.g.,
> https://sourceware.org/ml/gdb-patches/2015-08/msg00789.html
>
> Until this is cleaned up it'd be best to only use target_gdbarch
> and not its underlying implementation.
> Fortunately there is only one place that needed changing
> (further reinforcing my sense that only target_gdbarch should be
> used and never current_inferior ()->gdbarch).
>
> Alas, short of an API reorg (which I think is reasonable), I can't think
> of a way to prevent this from recurring.
>
>
> 2015-08-27 Doug Evans <xdje42@gmail.com>
>
> * ravenscar-thread.c (ravenscar_inferior_created): Replace
> current_inferior ()->gdbarch with its wrapper target_gdbarch.
>
> diff --git a/gdb/ravenscar-thread.c b/gdb/ravenscar-thread.c
> index ef82507..fe36c96 100644
> --- a/gdb/ravenscar-thread.c
> +++ b/gdb/ravenscar-thread.c
> @@ -341,7 +341,7 @@ ravenscar_inferior_created (struct target_ops *target, int from_tty)
> struct ravenscar_arch_ops *ops;
>
> if (!ravenscar_task_support
> - || gdbarch_ravenscar_ops (current_inferior ()->gdbarch) == NULL
> + || gdbarch_ravenscar_ops (target_gdbarch ()) == NULL
> || !has_ravenscar_runtime ())
> return;
>
Hmmm, forgot about ARI, bleah.
We could use that to at least catch recurrences.