Set inferior_ptid in ravenscar_thread_target::update_thread_list
Commit 2da4b788f
("Don't write to inferior_ptid in
ravenscar-thread.c") caused a Ravenscar regression (which, FWIW, is
understandable because Ravenscar is difficult to test). Namely,
ravenscar_thread_target::update_thread_list calls
iterate_over_live_ada_tasks, which calls ada_build_task_list, which
uses target_has_stack -- which relies on inferior_ptid.
This patch changes update_thread_list to ensure that inferior_ptid is
set before making this call. This avoids various failures on
Ravenscar targets.
gdb/ChangeLog
2020-08-07 Tom Tromey <tromey@adacore.com>
* ravenscar-thread.c (update_thread_list): Set inferior_ptid.
This commit is contained in:
parent
592f9bd76a
commit
0e29517d97
2 changed files with 10 additions and 0 deletions
|
@ -1,3 +1,7 @@
|
|||
2020-08-07 Tom Tromey <tromey@adacore.com>
|
||||
|
||||
* ravenscar-thread.c (update_thread_list): Set inferior_ptid.
|
||||
|
||||
2020-08-07 Tom Tromey <tromey@adacore.com>
|
||||
|
||||
* ravenscar-thread.c (ravenscar_thread_target::wait): Call
|
||||
|
|
|
@ -419,6 +419,12 @@ ravenscar_thread_target::add_thread (struct ada_task_info *task)
|
|||
void
|
||||
ravenscar_thread_target::update_thread_list ()
|
||||
{
|
||||
/* iterate_over_live_ada_tasks requires that inferior_ptid be set,
|
||||
but this isn't always the case in target methods. So, we ensure
|
||||
it here. */
|
||||
scoped_restore save_ptid = make_scoped_restore (&inferior_ptid,
|
||||
m_base_ptid);
|
||||
|
||||
/* Do not clear the thread list before adding the Ada task, to keep
|
||||
the thread that the process stratum has included into it
|
||||
(m_base_ptid) and the running thread, that may not have been included
|
||||
|
|
Loading…
Add table
Reference in a new issue