Mirror of the gdb mailing list
 help / color / mirror / Atom feed
* linux, threads and auto-solib-add
@ 2003-01-30  0:24 Martin M. Hunt
  2003-01-30  0:50 ` Kevin Buettner
  0 siblings, 1 reply; 5+ messages in thread
From: Martin M. Hunt @ 2003-01-30  0:24 UTC (permalink / raw)
  To: gdb

I am trying to answer a question about debugging threaded applications
when auto-solib-add is off. You cannot debug pthreads programs without
first loading the symbols for libpthread.  

Given that, does it make sense to modify solid_add to always read the
symbols for libpthread, if it is in the library list? Or is expected the
user knows enough to always immediately do "shar libpthread" after
starting debugging a threaded program?

Martin




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: linux, threads and auto-solib-add
  2003-01-30  0:24 linux, threads and auto-solib-add Martin M. Hunt
@ 2003-01-30  0:50 ` Kevin Buettner
  2003-01-30 10:20   ` Dan Mosedale
  0 siblings, 1 reply; 5+ messages in thread
From: Kevin Buettner @ 2003-01-30  0:50 UTC (permalink / raw)
  To: Martin M. Hunt, gdb

On Jan 29,  4:24pm, Martin M. Hunt wrote:

> I am trying to answer a question about debugging threaded applications
> when auto-solib-add is off. You cannot debug pthreads programs without
> first loading the symbols for libpthread.  
> 
> Given that, does it make sense to modify solid_add to always read the
> symbols for libpthread, if it is in the library list?

I'm not in favor of this.

> Or is expected the user knows enough to always immediately do "shar
> libpthread" after starting debugging a threaded program?

IMO, when the user disables auto-solib-add, then the user is
responsible for "hand" loading the shared libraries needed for
debugging the program.

Kevin


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: linux, threads and auto-solib-add
  2003-01-30  0:50 ` Kevin Buettner
@ 2003-01-30 10:20   ` Dan Mosedale
  2003-01-30 18:13     ` Kevin Buettner
  0 siblings, 1 reply; 5+ messages in thread
From: Dan Mosedale @ 2003-01-30 10:20 UTC (permalink / raw)
  To: Kevin Buettner; +Cc: Martin M. Hunt, gdb

Kevin Buettner wrote:

>On Jan 29,  4:24pm, Martin M. Hunt wrote:
>  
>
>>I am trying to answer a question about debugging threaded applications
>>when auto-solib-add is off. You cannot debug pthreads programs without
>>first loading the symbols for libpthread.  
>>
>>Given that, does it make sense to modify solid_add to always read the
>>symbols for libpthread, if it is in the library list?
>>    
>>
>I'm not in favor of this.
>  
>
>>Or is expected the user knows enough to always immediately do "shar
>>libpthread" after starting debugging a threaded program?
>>    
>>
>
>IMO, when the user disables auto-solib-add, then the user is
>responsible for "hand" loading the shared libraries needed for
>debugging the program.
>
Can you elaborate a bit on what it is about this you don't like?  This 
doesn't strike me as terribly intuitive behavior, since (unlike most 
other shared libraries), not having the symbols loaded effects the 
operation of things other than just the stack trace commands (at least 
"info threads").  It's worth keeping in mind that with larger software 
projects (eg Mozilla), developers may be turning auto-solib-add off 
because, given performance constraints, there's no practical alternative 
if you don't have a suitably beefy machine.

Dan


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: linux, threads and auto-solib-add
  2003-01-30 10:20   ` Dan Mosedale
@ 2003-01-30 18:13     ` Kevin Buettner
  2003-01-30 21:31       ` Andrew Cagney
  0 siblings, 1 reply; 5+ messages in thread
From: Kevin Buettner @ 2003-01-30 18:13 UTC (permalink / raw)
  To: Dan Mosedale; +Cc: Martin M. Hunt, gdb

On Jan 30,  2:14am, Dan Mosedale wrote:

> Kevin Buettner wrote:
> 
> >On Jan 29,  4:24pm, Martin M. Hunt wrote:
> >
> >>I am trying to answer a question about debugging threaded applications
> >>when auto-solib-add is off. You cannot debug pthreads programs without
> >>first loading the symbols for libpthread.  
> >>
> >>Given that, does it make sense to modify solid_add to always read the
> >>symbols for libpthread, if it is in the library list?
> >    
> >I'm not in favor of this.
> >
> >>Or is expected the user knows enough to always immediately do "shar
> >>libpthread" after starting debugging a threaded program?
> >
> >IMO, when the user disables auto-solib-add, then the user is
> >responsible for "hand" loading the shared libraries needed for
> >debugging the program.
>
> Can you elaborate a bit on what it is about this you don't like?  This 
> doesn't strike me as terribly intuitive behavior, since (unlike most 
> other shared libraries), not having the symbols loaded effects the 
> operation of things other than just the stack trace commands (at least 
> "info threads").  It's worth keeping in mind that with larger software 
> projects (eg Mozilla), developers may be turning auto-solib-add off 
> because, given performance constraints, there's no practical alternative 
> if you don't have a suitably beefy machine.

IMO, it adds needless complexity to gdb's shared library machinery and
to the documentation.  On the gdb side, we have to check for a
particular thread library, the name of which is platform dependent. 
On the documentation side, we now have an exception to the rule that
no shared libraries are automatically loaded when auto-solib-add is
disabled.  Also, there may be occasions when the user truly doesn't
want _any_ shared libraries to be automatically loaded.

I used the word "needless" above because I think there's a perfectly
reasonable way that the user can achieve the same effect without
modifying gdb.  Simply place the following commands in a suitable
.gdbinit file:

    set auto-solib-add off
    define hook-stop
    sharedlibrary libpthread
    end

The ``hook-stop'' definition above will attempt to load the libpthread
shared library every time gdb stops.  Of course, once a shared library
has been loaded, future attempts to load the shared library are
effectively no-ops since gdb knows that the library is already loaded.

Kevin


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: linux, threads and auto-solib-add
  2003-01-30 18:13     ` Kevin Buettner
@ 2003-01-30 21:31       ` Andrew Cagney
  0 siblings, 0 replies; 5+ messages in thread
From: Andrew Cagney @ 2003-01-30 21:31 UTC (permalink / raw)
  To: Kevin Buettner; +Cc: Dan Mosedale, Martin M. Hunt, gdb

> I used the word "needless" above because I think there's a perfectly
> reasonable way that the user can achieve the same effect without
> modifying gdb.  Simply place the following commands in a suitable
> .gdbinit file:
> 
>     set auto-solib-add off
>     define hook-stop
>     sharedlibrary libpthread
>     end
> 
> The ``hook-stop'' definition above will attempt to load the libpthread
> shared library every time gdb stops.  Of course, once a shared library
> has been loaded, future attempts to load the shared library are
> effectively no-ops since gdb knows that the library is already loaded.

Hey, wow!  Consider adding this to the documentation.

Andrew



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2003-01-30 21:31 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-01-30  0:24 linux, threads and auto-solib-add Martin M. Hunt
2003-01-30  0:50 ` Kevin Buettner
2003-01-30 10:20   ` Dan Mosedale
2003-01-30 18:13     ` Kevin Buettner
2003-01-30 21:31       ` Andrew Cagney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox