From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8125 invoked by alias); 26 Mar 2004 18:14:27 -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 8091 invoked from network); 26 Mar 2004 18:14:25 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 26 Mar 2004 18:14:25 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.10/8.12.10) with ESMTP id i2QIEO1X017608 for ; Fri, 26 Mar 2004 13:14:24 -0500 Received: from pobox.toronto.redhat.com (pobox.toronto.redhat.com [172.16.14.4]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id i2QIEMj25275; Fri, 26 Mar 2004 13:14:22 -0500 Received: from touchme.toronto.redhat.com (IDENT:postfix@touchme.toronto.redhat.com [172.16.14.9]) by pobox.toronto.redhat.com (8.12.8/8.12.8) with ESMTP id i2QIEKf7020210; Fri, 26 Mar 2004 13:14:20 -0500 Received: from redhat.com (toocool.toronto.redhat.com [172.16.14.72]) by touchme.toronto.redhat.com (Postfix) with ESMTP id 0766780008E; Fri, 26 Mar 2004 13:14:20 -0500 (EST) Message-ID: <406472FB.4010905@redhat.com> Date: Fri, 26 Mar 2004 18:14:00 -0000 From: Jeff Johnston User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 MIME-Version: 1.0 To: Daniel Jacobowitz Cc: gdb-patches@sources.redhat.com Subject: Re: [patch] Use TD_DEATH and PTRACE_EVENT_CLONE when available References: <405B4B8C.2060801@redhat.com> <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> In-Reply-To: <20040326175906.GA21136@nevyn.them.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2004-03/txt/msg00677.txt.bz2 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. > > The testcase you posted has credits in it, so we can't just grab it for > the testsuite. But all we should need to test this is a loop that > creates short-lived threads, and then verifying that we can send C-c, > get a prompt, issue info threads, and continue a couple of times > without seeing anyting matching "error:". Interested in writing that > test? :) > Sure. Just tried debugging eclipse today with this patch applied and it works as well. -- Jeff J.