This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Remove only use of current_inferior ()->gdbarch outside of gdbarch.*


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]