From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29632 invoked by alias); 15 Nov 2001 16:48:32 -0000 Mailing-List: contact gdb-help@sourceware.cygnus.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 29515 invoked from network); 15 Nov 2001 16:48:29 -0000 Received: from unknown (HELO nevyn.them.org) (128.2.145.6) by sourceware.cygnus.com with SMTP; 15 Nov 2001 16:48:29 -0000 Received: from drow by nevyn.them.org with local (Exim 3.32 #1 (Debian)) id 164Pgv-0001M7-00; Thu, 15 Nov 2001 11:48:41 -0500 Date: Sat, 03 Nov 2001 14:25:00 -0000 From: Daniel Jacobowitz To: "H . J . Lu" Cc: GDB Subject: Re: PATCH: Re: [RFHelp] Linux, threads, and regsets in thread_db Message-ID: <20011115114841.A5118@nevyn.them.org> Mail-Followup-To: "H . J . Lu" , GDB References: <20010924212808.A20851@nevyn.them.org> <20011003170848.A30843@lucon.org> <20011003211007.A12210@nevyn.them.org> <20011114134521.A25645@lucon.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20011114134521.A25645@lucon.org> User-Agent: Mutt/1.3.23i X-SW-Source: 2001-11/txt/msg00053.txt.bz2 On Wed, Nov 14, 2001 at 01:45:21PM -0800, H . J . Lu wrote: > On Wed, Oct 03, 2001 at 09:10:07PM -0400, Daniel Jacobowitz wrote: > > > > > > > > > > How far have you gone on Linux/mips? I know gdb 5.1 doesn't work with > > > threads on Linux/mips. Does your change fix it? I'd like to clean up > > > glibc for mips on this. > > > > Yes. Debugging threads works reasonably well. I'm going to do more > > work about this in the next couple of months too, I think; after I go > > back to gdbserver for a little while. > > I am still having problems with threads on mips. I cannot set break > point after target has run: > > (gdb) run > ... > (gdb) b main > reading register sp (#29): No such process. > > The problem is gdb tries to read sp register in thread mode. This patch > seems to work for me. This should not be a problem. It works fine for me. I'll step through it later tonight and try to figure out what the difference is from what you're seeing. > Another problem is when I set a break point in a thread function, only > the first thread stops. I got > > (gdb) b process > Breakpoint 1 at 0x400a38: file Examples/ex1.c, line 14. > (gdb) r > Starting program: /export/build/gnu/glibc/build-mipsel-linux/linuxthreads/ex1 > [New Thread 1024 (LWP 26552)] > [New Thread 2049 (LWP 26569)] > [New Thread 1026 (LWP 26570)] > [Switching to Thread 1026 (LWP 26570)] > > Breakpoint 1, process (arg=0x1000) at Examples/ex1.c:14 > 14 fprintf (stderr, "Starting process %s\n", (char *) arg); > ... > Program received signal SIGTRAP, Trace/breakpoint trap. > [Switching to Thread 1024 (LWP 26552)] > 0x2ab8de24 in __syscall_rt_sigsuspend () at soinit.c:56 > 56 soinit.c: No such file or directory. > > But it may be a kernel bug. Something is suspicious here. The process in sigsuspend should have been stopped with SIGSTOP, not SIGTRAP... is this an example program from glibc? > H.J. > --- > 2001-11-14 H.J. Lu (hjl@gnu.org) > > * mips-tdep.c (heuristic_proc_desc): Read register only when > target is running. I can't see why this changes behavior in the way you're seeing. I'm pretty sure it isn't right. -- Daniel Jacobowitz Carnegie Mellon University MontaVista Software Debian GNU/Linux Developer