Message ID | 20200123205909.30663-1-tromey@adacore.com |
---|---|
State | New |
Headers | show |
>>>>> "Tom" == Tom Tromey <tromey@adacore.com> writes:
Tom> ravenscar-thread.c needed a change to adapt to multi-target:
Tom> ravenscar_thread_target::mourn_inferior called the mourn_inferior
Tom> method on the target beneat -- but when the target beneath was the
Tom> remote target, this resulted in the ravenscar target being deleted.
Tom> Switching the order of the calls to unpush_target and the beneath's
Tom> mourn_inferior fixes this problem.
Tom> gdb/ChangeLog
Tom> 2020-01-23 Tom Tromey <tromey@adacore.com>
Tom> * ravenscar-thread.c (ravenscar_thread_target::mourn_inferior):
Tom> Call beneath target's mourn_inferior after unpushing.
I'm checking this in now.
Tom
diff --git a/gdb/ravenscar-thread.c b/gdb/ravenscar-thread.c index 5d24c59e996..fd3beb03ec3 100644 --- a/gdb/ravenscar-thread.c +++ b/gdb/ravenscar-thread.c @@ -515,8 +515,9 @@ void ravenscar_thread_target::mourn_inferior () { m_base_ptid = null_ptid; - beneath ()->mourn_inferior (); + target_ops *beneath = this->beneath (); unpush_target (this); + beneath->mourn_inferior (); } /* Implement the to_core_of_thread target_ops "method". */