[rfa] qSymbol in remote_wait

Daniel Jacobowitz drow@false.org
Fri Oct 15 14:46:00 GMT 2004


On Thu, Oct 14, 2004 at 09:16:25PM -0500, Jim Blandy wrote:
> 
> > As Amit Kale mentioned in December, to support NPTL gdbserver needs to
> > look up symbols during remote_wait.  The existing qSymbol model
> > assumes that only at objfile loads (i.e. during td_ta_new) do we need
> > to look up symbols; NPTL looks up symbols lazily when it needs them,
> > which includes at the creation of the first child thread.  This patch
> > (which, I know, needs a matching change for the manual) allows
> > qSymbol: queries as a response to remote_wait, in much the same way as
> > the file I/O protocol.
> >
> > 2004-01-31  Daniel Jacobowitz  <drow@mvista.com>
> > 
> > 	* remote.c (handle_remote_qsymbol): New function, broken out
> > 	from remote_check_symbols.
> > 	(remote_check_symbols): Call it.
> > 	(remote_wait): Handle qSymbol.
> > 	(remote_async_wait): Likewise.
> 
> I was struggling with this too until I noticed the function
> td_symbol_list, which gives you an à priori list of all the symbols
> libthread_db may ever request.  Unless I've missed something, this is
> exactly what's needed to fit ps_pglobal_lookup into the existing
> remote protocol's qSymbol dance: you can look up all the symbols
> libthread_db needs as soon as the inferior loads libpthread.so, and
> then have ps_pglobal_lookup just provide values from a cache.
> 
> I think this has been present in NPTL's libthread_db from the
> beginning; it's present in some versions of LinuxThreads' as well, but
> I don't think it was there initially.

Woah!  I never noticed that was there.  Thank you very, very much, Jim.

Since I assume that all the symbols in td_symbol_list - or at least,
most of them - will be defined, I can just try the first one every time
that GDB offers to look up symbols for me.

-- 
Daniel Jacobowitz



More information about the Gdb-patches mailing list