Should this be on the blocker list for the 7.10 release?

Simon Marchi simon.marchi@ericsson.com
Tue Jul 7 18:35:00 GMT 2015


> OK, the issue is that the new clone thread is found while inside
> the linux_stop_and_wait_all_lwps call in this new bit of
> code in linux-thread-db.c:
> 
>       linux_stop_and_wait_all_lwps ();
> 
>       ALL_LWPS (lp)
> 	if (ptid_get_pid (lp->ptid) == pid)
> 	  thread_from_lwp (lp->ptid);
> 
>       linux_unstop_all_lwps ();
> 
> We reach linux_handle_extended_wait with the "stopping"
> parameter set to 1, and because of that we don't mark the
> new lwp as resumed.  As consequence, the subsequent
> resume_stopped_resumed_lwps (called first from that
> linux_unstop_all_lwps) never resumes the new LWP...
> 
> There's lots of cruft in linux_handle_extended_wait that no
> longer makes sense.  This seems to fix your github test
> for me, and causes no testsuite regressions.

It seems to fix most of it.  The only odd thing left that I
noticed is that it leaves some of the inferiors there.  When I
type "info inferiors" after running the program, I see one or
two of them left.  I believe there should only be inferior #1
left.

> Did you try converting your test case to a proper
> GDB test?  That'd be much appreciated.

I haven't, but I will.

Thanks!



More information about the Gdb-patches mailing list