This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: Re: [RFHelp] Linux, threads, and regsets in thread_db


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]