This is the mail archive of the gdb-patches@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]

[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.


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