This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[rfa] qSymbol in remote_wait
- From: Jim Blandy <jimb at redhat dot com>
- To: Daniel Jacobowitz <drow at false dot org>
- Cc: gdb-patches at sources dot redhat dot com
- Date: 14 Oct 2004 21:16:25 -0500
- Subject: [rfa] qSymbol in remote_wait
> 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.