From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18987 invoked by alias); 16 Nov 2001 19:59:53 -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 18887 invoked from network); 16 Nov 2001 19:59:45 -0000 Received: from unknown (HELO nevyn.them.org) (128.2.145.6) by sourceware.cygnus.com with SMTP; 16 Nov 2001 19:59:45 -0000 Received: from drow by nevyn.them.org with local (Exim 3.32 #1 (Debian)) id 164p9d-0003bf-00 for ; Fri, 16 Nov 2001 15:00:01 -0500 Date: Tue, 06 Nov 2001 14:28:00 -0000 From: Daniel Jacobowitz To: GDB Subject: Re: PATCH: Re: [RFHelp] Linux, threads, and regsets in thread_db Message-ID: <20011116150001.A19660@nevyn.them.org> Mail-Followup-To: GDB References: <20010924212808.A20851@nevyn.them.org> <20011003170848.A30843@lucon.org> <20011003211007.A12210@nevyn.them.org> <20011114134521.A25645@lucon.org> <20011115114841.A5118@nevyn.them.org> <20011115085508.D10945@lucon.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20011115085508.D10945@lucon.org> User-Agent: Mutt/1.3.23i X-SW-Source: 2001-11/txt/msg00065.txt.bz2 On Thu, Nov 15, 2001 at 08:55:08AM -0800, H . J . Lu wrote: > In my case, gdb in thread mode will cal "fetch_register" in infptrace.c. > Since nothing is running, I got > > reading register sp (#29): No such process. > > I don't know why it works for you. OK, I misunderstood what you meant by "after the process has run". I see the problem. I'll send another patch that I think is more accurate later today, once I test it a bit. > > > 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? > > Yes, linuxthreads/ex1 from glibc. OK, I can reproduce this too. This has something to do with mishandling thread exit. > > > 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 > > Why do you think that? Why does anyone want to read a register when > nothing is running? We never want to read that register from after_prologue; the current stack pointer is not relevant. -- Daniel Jacobowitz Carnegie Mellon University MontaVista Software Debian GNU/Linux Developer