This is the mail archive of the gdb@sourceware.org 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: fail to attach to process on Solaris


> -----Original Message-----
> From: Pedro Alves [mailto:pedro@codesourcery.com] 
> Sent: Wednesday, September 21, 2011 12:46 PM
> To: Burkhardt, Glenn
> Cc: gdb@sourceware.org
> Subject: Re: fail to attach to process on Solaris
> 
> On Wednesday 21 September 2011 17:18:25, Burkhardt, Glenn wrote:
> > Thank you very much for your response.
> > 
> > I did peek at /proc from the command line when the breakpoint in
> > find_procinfo_or_die() was hit - there was no corresponding 
> LWP.  Nor, 
> > does it seem, that any LWP with the same thread number ever existed.
> > 
> > Here's more extensive info, with a complete stack trace, and some 
> > preliminary info printed after gdb attaches.  This time, the thread 
> > number that triggered the problem was 65.
> 
> Okay.  I assume your program isn't spawning and exiting 
> threads quickly in succession, otherwise, we'd see LWP ids 
> much higher.
> 
> It's libthread_db.so that maps a thread to a LWP id, so we 
> may be missing some state checks and getting back a stale id.
> Try the "maint info sol-threads" command (I never noticed 
> this command before), and let's see what state does 
> libthread_db.so think the thread is in.  I see that 
> linux-thread-db.c (the glibc/linux fork of this code) has 
> extra checks for ignoring threads in some states that the 
> Solaris code doesn't have.
> 
> Please don't top post.  That has a tendency of making one 
> forget to answer questions.  :-)  Here it is again:
> 
> > This is Solaris 9, with the default 1:1 model thread library, right?
> 
> --
> Pedro Alves
> 

So, this time the first thread to fail is #68, and the maint command
shows the thread as having a 'zombie' LWP:

 - Sleep func: 0x6ccfa4
user   thread #67, lwp 67, (active)    startfunc: bootStrap
user   thread #69, lwp 69, (asleep)    startfunc: bootStrap
 - Sleep func: 0x6ccfa4
user   thread #2, lwp 2, (zombie)    startfunc: bootStrap
user   thread #61, lwp 61, (zombie)    startfunc: bootStrap
user   thread #64, lwp 64, (zombie)    startfunc: bootStrap
user   thread #65, lwp 65, (zombie)    startfunc: bootStrap
user   thread #70, lwp 70, (zombie)    startfunc: bootStrap
user   thread #66, lwp 66, (zombie)    startfunc: bootStrap
user   thread #68, lwp 68, (zombie)    startfunc: bootStrap
(gdb) c
Continuing.
procfs: couldn't find pid 16946 (kernel thread 68) in procinfo list.
(gdb) det
Detaching from program:
/home/glenn.burkhardt/targets/sol/ata0a/rms/rms.sparc, process 16946


A complete log of the session is attached.

Attachment: gdb.log
Description: gdb.log


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