Re: [RFC][Patch] Fix gdb failure to access tls data for parent thread

Pedro Alves
2009-02-24T15:58:27Z

On Tuesday 24 February 2009 15:31:53, Daniel Jacobowitz wrote:
> 81            /* Verify that this thread's pid field matches the child PID.
> 82               If its pid field is negative, it's about to do a fork or it
> 83               is the sole thread in a fork child.  */

Boo, I'm on glibc 2.7, which doesn't have this check, but I see it
in glibc-2.9 sources...

> It's checking that the PID (not TID) matches proc_handle.pid.  We need
> to find another way to read from a stopped thread, since if we put any
> other PID there, we get no threads.  I would suggest expanding
> ps_prochandle to include a memory thread as ptid_t.

Right, I'll take this. Funny, I was actually noticing the other day
that the proc service implementation in sol-threads.c passes a ptid
already, and I was considering making sol-threads.c use proc-service.c:

/* This struct is defined by us, but mainly used for the proc_service
interface. We don't have much use for it, except as a handy place
to get a real PID for memory accesses. */

struct ps_prochandle
{
ptid_t ptid;
};

> We always try to
> read from the most recently added stopped thread, since the lwp_list
> gets additions at the front.
>

--
Pedro Alves