* remote-utils.c (all_symbols_looked_up): New variable.

(look_up_one_symbol): Check it.
	* server.h (look_up_one_symbol): New declaration.
	* thread-db.c (thread_db_init): Set all_symbols_looked_up.
This commit is contained in:
Daniel Jacobowitz 2006-05-30 19:05:33 +00:00
parent 24718e3ba5
commit ea025f5f61
4 changed files with 29 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2006-05-30 Daniel Jacobowitz <dan@codesourcery.com>
* remote-utils.c (all_symbols_looked_up): New variable.
(look_up_one_symbol): Check it.
* server.h (look_up_one_symbol): New declaration.
* thread-db.c (thread_db_init): Set all_symbols_looked_up.
2006-05-30 Daniel Jacobowitz <dan@codesourcery.com>
* Makefile.in (linux-arm-low.o): Update dependencies.

View File

@ -1,6 +1,6 @@
/* Remote utility routines for the remote server for GDB.
Copyright (C) 1986, 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
2002, 2003, 2004, 2005
2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
This file is part of GDB.
@ -52,6 +52,10 @@ struct sym_cache
/* The symbol cache. */
static struct sym_cache *symbol_cache;
/* If this flag has been set, assume cache misses are
failures. */
int all_symbols_looked_up;
int remote_debug = 0;
struct ui_file *gdb_stdlog;
@ -769,6 +773,14 @@ 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 (all_symbols_looked_up)
return 0;
/* Send the request. */
strcpy (own_buf, "qSymbol:");
hexify (own_buf + strlen ("qSymbol:"), name, strlen (name));

View File

@ -1,5 +1,6 @@
/* Common definitions for remote server for GDB.
Copyright (C) 1993, 1995, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005
Copyright (C) 1993, 1995, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005,
2006
Free Software Foundation, Inc.
This file is part of GDB.
@ -127,7 +128,9 @@ extern int server_waiting;
extern jmp_buf toplevel;
/* Functions from remote-utils.c */
/* From remote-utils.c */
extern int all_symbols_looked_up;
int putpkt (char *buf);
int getpkt (char *buf);

View File

@ -336,6 +336,9 @@ thread_db_init ()
process in the list is the thread group leader. */
proc_handle.pid = ((struct inferior_list_entry *)current_inferior)->id;
/* Allow new symbol lookups. */
all_symbols_looked_up = 0;
err = td_ta_new (&proc_handle, &thread_agent);
switch (err)
{
@ -350,6 +353,7 @@ thread_db_init ()
return 0;
thread_db_find_new_threads ();
thread_db_look_up_symbols ();
all_symbols_looked_up = 1;
return 1;
default: