[PATCH 1/3] Pass inferior to terminal_save_inferior
Simon Marchi
simon.marchi@polymtl.ca
Tue Oct 23 20:56:00 GMT 2018
On 2018-10-23 7:11 a.m., Pedro Alves wrote:
> Oh, in that case it'd be clearer to not bundle it in the same series then.
Right, I happened to write it at the same time (when trying to figure out
how things worked) but it's not actually related.
>> Can't you access the inferior's target stack directly instead of changing the current inferior?
>
> I can for the call to the top target, but then the problem is the beneath()
> calls in all the target-delegates.c delegating implementations. E.g. here:
>
> void
> -target_ops::terminal_save_inferior ()
> +target_ops::terminal_save_inferior (inferior *arg0)
> {
> - this->beneath ()->terminal_save_inferior ();
> + this->beneath ()->terminal_save_inferior (arg0);
> ^^^^^^^^^
> }
>
> because beneath() looks at the target stack of the current
> inferior. It would need to look for the target beneath in
> the target stack of the arg0 inferior instead. Otherwise
> you start the top target call in inferior B, and then
> cross the the beneath target of inferior A (the current inferior).
> Whoops. At some point in the branch I made target_ops::beneath
> take an optional inferior pointer, but when I stumbled on this
> issue in target-delegates.c I ended up reverting it, as it
> wasn't easy to fix. I think that we could maybe teach
> make-target-delegates to automatically emit
>
> void
> target_ops::method (inferior *arg0)
> {
> this->beneath (arg0)->method (arg0);
> }
>
> and:
>
> void
> target_ops::method (thread_info *arg0)
> {
> this->beneath (arg0->inf)->method (arg0);
> }
>
> iff the method's first parameter is an inferior or thread_info
> pointer. But that was just an idea, I never toyed with it,
> because it would be a detour. So I gave up on the inferior
> parameter to target beneath, and thought I'd better focus instead
> of getting the multi-target basics in first, even if that means we
> need to swap current inferior/thread here and there, as usual.
Ok I understand. At some point I think it would be very nice if it
"just worked", but I totally understand the need to go by small
increment. In that case, I think I'll drop patches 1 and 2, since
they don't really provide any benefit at the moment, and just cause
complications going further.
Simon
More information about the Gdb-patches
mailing list