Don't write to inferior_ptid in btrace_fetch

gdb/ChangeLog:
2020-06-18  Pedro Alves  <palves@redhat.com>

	* btrace.c (btrace_fetch): Use switch_to_thread instead of writing
	to inferior_ptid.
This commit is contained in:
Pedro Alves
2020-06-18 21:28:31 +01:00
parent f2e1c129f8
commit 86e57d1b23
2 changed files with 11 additions and 5 deletions

View File

@ -1910,11 +1910,12 @@ btrace_fetch (struct thread_info *tp, const struct btrace_cpu *cpu)
if (btinfo->replay != NULL)
return;
/* With CLI usage, TP->PTID always equals INFERIOR_PTID here. Now that we
can store a gdb.Record object in Python referring to a different thread
than the current one, temporarily set INFERIOR_PTID. */
scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
inferior_ptid = tp->ptid;
/* With CLI usage, TP is always the current thread when we get here.
However, since we can also store a gdb.Record object in Python
referring to a different thread than the current one, we need to
temporarily set the current thread. */
scoped_restore_current_thread restore_thread;
switch_to_thread (tp);
/* We should not be called on running or exited threads. */
gdb_assert (can_access_registers_thread (tp));