This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [patch] Use TD_DEATH and PTRACE_EVENT_CLONE when available (was: Re: [RFC]: fix for recycled thread ids)
On Fri, Mar 26, 2004 at 12:59:06PM -0500, Daniel Jacobowitz wrote:
> On Thu, Mar 25, 2004 at 03:22:13PM -0500, Jeff Johnston wrote:
> >
> > Daniel Jacobowitz wrote:
> > >On Wed, Mar 24, 2004 at 11:39:50PM -0500, Daniel Jacobowitz wrote:
> > >
> > >>Do you have any code for PTRACE_EVENT_CLONE yet, or should I put
> > >>something together in the morning to verify whether that's the problem?
> > >
> > >
> > >Here you go. Again, this patch is obviously not ready to go into GDB,
> > >but I have not been able to make it misbehave yet. I don't know if all
> > >the bits it needs work right in RHEL3, or if my testing was conclusive.
> > >
> > >The highlights:
> > > - Includes most of the previous patch
> > > - Uses PTRACE_EVENT_CLONE to attach to new threads
> > > - Moves handling of events closer to the waitpid call
> > >
> > >There are some potential races but I haven't hit any of them in
> > >practice. I suspect that with a heavy fork or vfork load (not clone)
> > >you could produce interesting failure modes.
> > >
> > >Give it a try, please. If it works I'll clean it up.
> > >
> >
> > Works great. I was unable to get it to misbehave on RHEL3. Please go
> > ahead cleaning it up.
>
> Here's the final patch. The description of the patch is unchanged from
> the above. The background, for those who did not read the whole
> discussion: in NPTL, a signal delivered to the process when any thread
> is not attached is likely to terminate the process. So we need to be
> careful to:
> - know when threads have exited, so that we can attach to new threads
> which reuse the same thread ID
> - attach to threads as early as possible
>
> Both of these could cause problems in LinuxThreads, but they were less
> drastic.
>
> Tested with both LinuxThreads and NPTL. I'll commit this to HEAD on
> Monday, barring objections. We've missed the boat for GDB 6.1 at this
> point.
I've checked this in for HEAD.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer