From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23502 invoked by alias); 23 Jun 2003 14:08:04 -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 30886 invoked from network); 23 Jun 2003 12:46:58 -0000 Received: from unknown (HELO crack.them.org) (146.82.138.56) by sources.redhat.com with SMTP; 23 Jun 2003 12:46:58 -0000 Received: from dsl093-172-017.pit1.dsl.speakeasy.net ([66.93.172.17] helo=nevyn.them.org ident=mail) by crack.them.org with asmtp (Exim 3.12 #1 (Debian)) id 19UQj4-0004Ci-00; Mon, 23 Jun 2003 07:47:14 -0500 Received: from drow by nevyn.them.org with local (Exim 3.36 #1 (Debian)) id 19UQiB-0006Ls-00; Mon, 23 Jun 2003 08:46:19 -0400 Date: Mon, 23 Jun 2003 14:08:00 -0000 From: Daniel Jacobowitz To: ramana@codito.com Cc: gdb@sources.redhat.com Subject: Re: Problem with multiple threads using gdbserver on x86. Message-ID: <20030623124618.GA24330@nevyn.them.org> Mail-Followup-To: ramana@codito.com, gdb@sources.redhat.com References: <1056365816.1389.20.camel@numenor.codito.co.in> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1056365816.1389.20.camel@numenor.codito.co.in> User-Agent: Mutt/1.5.1i X-SW-Source: 2003-06/txt/msg00444.txt.bz2 On Mon, Jun 23, 2003 at 04:26:56PM +0530, Ramana Radhakrishnan wrote: > hi, > > this is regarding debugging multi-threaded applications using gdbserver. > I am facing a weird situation with respect to the same. When i try and > run gdbserver on a multi-threaded application and try to debug the same, > gdb is unable to stop all the threads on hitting a breakpoint in one of > the threads. > > the steps i followed are the following. > $>gdbserver localhost:1234 thr > $>gdb thr > > (gdb) target remote localhost:1234 > Remote debugging using localhost:1234 > 0x40000be0 in ?? () > > (gdb) set remotelogfile logfile > (gdb) b main > Breakpoint 1 at 0x80484b0: file thr.c, line 11. > (gdb) c > Continuing. > Ignoring packet error, continuing... > Ignoring packet error, continuing... > Ignoring packet error, continuing... > > Breakpoint 1, main (argc=1, argv=0xbffff144) at thr.c:11 > 11 printf("Creating...\n"); > (gdb) n > 12 pthread_create( &id, NULL, work2, ((void*) 0) ); > (gdb) n > 13 printf("Created thread.\n"); fflush(stdout); > (gdb) n > 15 printf("Waiting...\n"); > > > At this point in time if i do an info threads the only thread it shows > me is the main thread though in gdb it shows me both the threads. > At the same point of time when the main thread is stopped at this > position the thread which has just been created runs away. ! > and on doing an info threads i do not get the information about the > newly created thread. > > Is this a limitation of gdbserver with respect to kernel space threads. > I saw the comment in thread-db.c in the function > thread_db_find_new_threads. which says "iterate" over user space threads > ?? > The foll. is the information regarding my machine / environment. > > RedHat linux 9.0 . gdb v 5.3 gcc version 3.2.2 20030222 > GNU gdb Red Hat Linux (5.3post-0.20021129.18rh) > > > I wonder if anyone else is getting a similar problem ..I am attaching > the 2 files that were used for this purpose. It works perfectly fine for me. I recommend you ask Red Hat; I know that gdbserver does not yet support NPTL so it's possible that they have disabled threading. -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer