mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-26 01:07:52 +00:00
gdb/gdbserver/
* proc-service.c (ps_pglobal_lookup): Use thread_db_look_up_one_symbol. * remote-utils.c (look_up_one_symbol): Add new `may_ask_gdb' parameter. Use it instead of all_symbols_looked_up. * server.h (struct process_info) <all_symbols_looked_up>: Delete field. (all_symbols_looked_up): Don't declare. (look_up_one_symbol): Add new `may_ask_gdb' parameter. * thread-db.c (struct thread_db) <all_symbols_looked_up>: New field. (thread_db_look_up_symbols): Adjust call to look_up_one_symbol. Set all_symbols_looked_up here. (thread_db_look_up_one_symbol): New. (thread_db_get_tls_address): Adjust. (thread_db_load_search, try_thread_db_load_1): Always allocate the thread_db object on the heap, and tentatively set it in the process structure. (thread_db_init): Don't set all_symbols_looked_up here. * linux-low.h (thread_db_look_up_one_symbol): Declare.
This commit is contained in:
@@ -1411,11 +1411,12 @@ clear_symbol_cache (struct sym_cache **symcache_p)
|
||||
*symcache_p = NULL;
|
||||
}
|
||||
|
||||
/* Ask GDB for the address of NAME, and return it in ADDRP if found.
|
||||
/* Get the address of NAME, and return it in ADDRP if found. if
|
||||
MAY_ASK_GDB is false, assume symbol cache misses are failures.
|
||||
Returns 1 if the symbol is found, 0 if it is not, -1 on error. */
|
||||
|
||||
int
|
||||
look_up_one_symbol (const char *name, CORE_ADDR *addrp)
|
||||
look_up_one_symbol (const char *name, CORE_ADDR *addrp, int may_ask_gdb)
|
||||
{
|
||||
char own_buf[266], *p, *q;
|
||||
int len;
|
||||
@@ -1432,12 +1433,9 @@ look_up_one_symbol (const char *name, CORE_ADDR *addrp)
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* If we've passed the call to thread_db_look_up_symbols, then
|
||||
anything not in the cache must not exist; we're not interested
|
||||
in any libraries loaded after that point, only in symbols in
|
||||
libpthread.so. It might not be an appropriate time to look
|
||||
up a symbol, e.g. while we're trying to fetch registers. */
|
||||
if (proc->all_symbols_looked_up)
|
||||
/* It might not be an appropriate time to look up a symbol,
|
||||
e.g. while we're trying to fetch registers. */
|
||||
if (!may_ask_gdb)
|
||||
return 0;
|
||||
|
||||
/* Send the request. */
|
||||
|
||||
Reference in New Issue
Block a user