From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18945 invoked by alias); 14 May 2004 15:13:21 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 18916 invoked from network); 14 May 2004 15:13:16 -0000 Received: from unknown (HELO austin.greshamstorage.com) (216.143.252.250) by sourceware.org with SMTP; 14 May 2004 15:13:16 -0000 Received: from greshamstorage.com (leander.greshamstorage.com [192.245.184.64]) by austin.greshamstorage.com with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2653.13) id KV9WLHLR; Fri, 14 May 2004 10:13:21 -0500 Message-ID: <40A4E1EA.8080603@greshamstorage.com> Date: Fri, 14 May 2004 15:13:00 -0000 From: "Jonathan A. George" Reply-To: JAGeorge@greshamstorage.com User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040413 Debian/1.6-5 MIME-Version: 1.0 To: gdb@sources.redhat.com Subject: BUG: GDB >=6 vfork from pthread fails with 2.6 vanilla kernels Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2004-05/txt/msg00087.txt.bz2 BUG: GDB >=6 vfork from pthread fails with 2.6 vanilla kernels Very simple to duplicate: Run popen() from within a pthread_create() thread while sleeping in the base process. (NOTE: works perfectly outside of GDB and under GDB with 2.4 kernel pthreads) Environment: Any 2.6 series kernel (tested 2.6.0 - 2.6.6 vanilla kernel.org) Any GDB (tested 6.0 - current CVS) Any GCC linked with -lpthread (tested 3.0.4 - 3.3.3) GDB output from test program: Detaching after fork from child process 7020. warning: Unexpected waitpid result 00117f when waiting for vfork-done linux-nat.c:450: internal-error: unknown ptrace event 5 A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) Observations: It seems as if GDB in linux-nat.c is trying to associate the vfork()d popen()d process with the root process instead of the parenting thread started by the root process.