* 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:
parent
24718e3ba5
commit
ea025f5f61
4 changed files with 29 additions and 3 deletions
|
@ -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>
|
2006-05-30 Daniel Jacobowitz <dan@codesourcery.com>
|
||||||
|
|
||||||
* Makefile.in (linux-arm-low.o): Update dependencies.
|
* Makefile.in (linux-arm-low.o): Update dependencies.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* Remote utility routines for the remote server for GDB.
|
/* Remote utility routines for the remote server for GDB.
|
||||||
Copyright (C) 1986, 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
|
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.
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of GDB.
|
This file is part of GDB.
|
||||||
|
@ -52,6 +52,10 @@ struct sym_cache
|
||||||
/* The symbol cache. */
|
/* The symbol cache. */
|
||||||
static struct sym_cache *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;
|
int remote_debug = 0;
|
||||||
struct ui_file *gdb_stdlog;
|
struct ui_file *gdb_stdlog;
|
||||||
|
|
||||||
|
@ -769,6 +773,14 @@ look_up_one_symbol (const char *name, CORE_ADDR *addrp)
|
||||||
return 1;
|
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. */
|
/* Send the request. */
|
||||||
strcpy (own_buf, "qSymbol:");
|
strcpy (own_buf, "qSymbol:");
|
||||||
hexify (own_buf + strlen ("qSymbol:"), name, strlen (name));
|
hexify (own_buf + strlen ("qSymbol:"), name, strlen (name));
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
/* Common definitions for remote server for GDB.
|
/* 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.
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of GDB.
|
This file is part of GDB.
|
||||||
|
@ -127,7 +128,9 @@ extern int server_waiting;
|
||||||
|
|
||||||
extern jmp_buf toplevel;
|
extern jmp_buf toplevel;
|
||||||
|
|
||||||
/* Functions from remote-utils.c */
|
/* From remote-utils.c */
|
||||||
|
|
||||||
|
extern int all_symbols_looked_up;
|
||||||
|
|
||||||
int putpkt (char *buf);
|
int putpkt (char *buf);
|
||||||
int getpkt (char *buf);
|
int getpkt (char *buf);
|
||||||
|
|
|
@ -336,6 +336,9 @@ thread_db_init ()
|
||||||
process in the list is the thread group leader. */
|
process in the list is the thread group leader. */
|
||||||
proc_handle.pid = ((struct inferior_list_entry *)current_inferior)->id;
|
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);
|
err = td_ta_new (&proc_handle, &thread_agent);
|
||||||
switch (err)
|
switch (err)
|
||||||
{
|
{
|
||||||
|
@ -350,6 +353,7 @@ thread_db_init ()
|
||||||
return 0;
|
return 0;
|
||||||
thread_db_find_new_threads ();
|
thread_db_find_new_threads ();
|
||||||
thread_db_look_up_symbols ();
|
thread_db_look_up_symbols ();
|
||||||
|
all_symbols_looked_up = 1;
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Add table
Reference in a new issue