From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13022 invoked by alias); 29 Mar 2004 18:07:37 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 13001 invoked from network); 29 Mar 2004 18:07:36 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sources.redhat.com with SMTP; 29 Mar 2004 18:07:36 -0000 Received: from drow by nevyn.them.org with local (Exim 4.30 #1 (Debian)) id 1B81Ae-0005oE-7d for ; Mon, 29 Mar 2004 13:07:36 -0500 Date: Mon, 29 Mar 2004 18:07:00 -0000 From: Daniel Jacobowitz To: gdb-patches@sources.redhat.com Subject: Re: [patch] Use TD_DEATH and PTRACE_EVENT_CLONE when available (was: Re: [RFC]: fix for recycled thread ids) Message-ID: <20040329180736.GA22039@nevyn.them.org> Mail-Followup-To: gdb-patches@sources.redhat.com References: <20040319194011.GA18776@nevyn.them.org> <405B66F4.4090101@redhat.com> <20040324155130.GA27748@nevyn.them.org> <20040324165625.GA10256@nevyn.them.org> <4062041F.1010302@redhat.com> <40622BEF.8030403@redhat.com> <20040325043950.GA13188@nevyn.them.org> <20040325163437.GA15238@nevyn.them.org> <40633F75.5010908@redhat.com> <20040326175906.GA21136@nevyn.them.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040326175906.GA21136@nevyn.them.org> User-Agent: Mutt/1.5.1i X-SW-Source: 2004-03/txt/msg00723.txt.bz2 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