When searching for an active thread (e.g. right after switching to threaded
mode), if no lwp is signaled, just stay with the current (inferior_ptid.lwp). This fixes gdb -p to a threaded process with all threads active. Previously we eroneously restored an lwp of 0 (returned as sentinel from ptrace) to inferior_ptid.lwp, which then would not match any thread in thread_list and caused assertion failures.
This commit is contained in:
parent
9b136a6b53
commit
4199c0b4fb
|
@ -282,6 +282,9 @@ find_active_thread (void)
|
|||
while ((val != -1) && (pl.pl_lwpid != 0) &&
|
||||
(pl.pl_event != PL_EVENT_SIGNAL))
|
||||
val = ptrace (PT_LWPINFO, GET_PID(inferior_ptid), (void *)&pl, sizeof(pl));
|
||||
if (pl.pl_lwpid == 0)
|
||||
/* found no "active" thread, stay with current */
|
||||
pl.pl_lwpid = inferior_ptid.lwp;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue