From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25869 invoked by alias); 17 Jan 2003 14:51:57 -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 25854 invoked from network); 17 Jan 2003 14:51:53 -0000 Received: from unknown (HELO relay.versatel.net) (62.250.3.110) by sources.redhat.com with SMTP; 17 Jan 2003 14:51:53 -0000 Received: (qmail 74067 invoked from network); 17 Jan 2003 14:51:51 -0000 Received: from unknown (HELO technt.technolution.nl) (62.58.167.162) by relay.versatel.net with SMTP; 17 Jan 2003 14:51:51 -0000 Received: from frank (172.16.10.11) by technt.technolution.nl (Worldmail 1.3.167); 17 Jan 2003 15:51:49 +0100 Reply-To: From: "Frank van Eijkelenburg" To: "Daniel Jacobowitz" Cc: "Gnu Debugger mailing list" Subject: RE: multithreaded remote debugging Date: Fri, 17 Jan 2003 14:51:00 -0000 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal Importance: Normal In-Reply-To: <20030117141359.GA20241@nevyn.them.org> X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700 X-SW-Source: 2003-01/txt/msg00304.txt.bz2 > > > > Hi, I'm new to gdb. I try to remote debug an application: > > > > > > > > I have a linux machine with redhat installed (2.4.7-10), this > > > is the host. > > > > On the target an ARM processor is running with linux kernel > 2.4.16. I > > > > compiled gdb on the host (with target arm-linux). I also > cross-compiled > > > > gdbserver. My application (which I want to debug) is compiled > > > with compiler > > > > option -g. I can start the gdbserver on the target and gdb on > > > the host and > > > > have a connection by tcp/ip. The application is multithreaded > > > and uses the > > > > libpthread library. If I ignore the SIG32 signal (with "handle > > > SIG32 nostop" > > > > and "handle SIG32 noprint") I can run the application. However, > > > if I try to > > > > execute "info threads" I only get information about one > thread (the main > > > > thread??). I can put breakpoints in the main thread and > step through the > > > > code, but if I put a breakpoint in another thread, the debugger > > > will stop, > > > > but I cannot step through the code: > > > > > > > > Program received signal SIGTRAP, Trace/breakpoint trap. > > > > 0x400ab2e4 in ?? () > > > > (gdb) n > > > > Cannot find bounds of current function > > > > > > > > What do I wrong or is it not possible to step through the > code of other > > > > threads beside the main thread? > > > > > > You neglected to say what version you're using. We only got support > > > for remote thread debugging between GDB 5.2 and 5.3; if you aren't > > > using 5.3, you should try it. > > > > > > > Sorry about that. I am using GDB version 5.3 with the above described > > problems. > > Do you have libthread_db installed on your target, and on your cross > development system so that gdbserver can link to it? Look at the > output of "configure" in the gdbserver directory, or at config.log. > I think the problem is in the libraries. I tried some simple sample code and debugged this on the host machine (it was linking /lib/libpthread.so.0). This worked like I expected (I could see multiple threads with the "info threads" command). Gdbserver is crosscompiled with the libthread_db.so.1, which is also installed at the target. But the application is linked against a libpthread.a.