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  <tromey@adacore.com>

	* ravenscar-thread.c (ravenscar_thread_target::mourn_inferior):
	Call beneath target's mourn_inferior after unpushing.

Change-Id: Ia80380515c403adc40505a6b3420c9cb35754370
This commit is contained in:
Tom Tromey 2020-01-22 12:30:40 -07:00
parent 42330a681a
commit fd9faca826
2 changed files with 7 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2020-01-31 Tom Tromey <tromey@adacore.com>
* ravenscar-thread.c (ravenscar_thread_target::mourn_inferior):
Call beneath target's mourn_inferior after unpushing.
2020-01-31 Andrew Burgess <andrew.burgess@embecosm.com>
PR tui/9765

View File

@ -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". */