From fd9faca826e6ee9178cf0b1c2486e3c662d6375a Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 22 Jan 2020 12:30:40 -0700 Subject: [PATCH] Fix ravenscar-thread.c for multi-target ravenscar-thread.c needed a change to adapt to multi-target: ravenscar_thread_target::mourn_inferior called the mourn_inferior method on the target beneat -- but when the target beneath was the remote target, this resulted in the ravenscar target being deleted. Switching the order of the calls to unpush_target and the beneath's mourn_inferior fixes this problem. gdb/ChangeLog 2020-01-31 Tom Tromey * ravenscar-thread.c (ravenscar_thread_target::mourn_inferior): Call beneath target's mourn_inferior after unpushing. Change-Id: Ia80380515c403adc40505a6b3420c9cb35754370 --- gdb/ChangeLog | 5 +++++ gdb/ravenscar-thread.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 5bdca27efc5..ea8ef82c388 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2020-01-31 Tom Tromey + + * ravenscar-thread.c (ravenscar_thread_target::mourn_inferior): + Call beneath target's mourn_inferior after unpushing. + 2020-01-31 Andrew Burgess PR tui/9765 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". */ -- 2.30.2