delete target_ops.to_lookup_symbol

gdb/ChangeLog:

        * target.h (struct target_ops): Remove to_lookup_symbol field.
        (target_lookup_symbol): Delete macro.
        * target.c (nosymbol, debug_to_lookup_symbol): Delete.
        (update_current_target, setup_target_debug): Remove handling
        of to_lookup_symbol target_ops field.
        * ada-tasks.c (get_known_tasks_addr): Remove use of
        target_lookup_symbol.
        * coffread.c (coff_symtab_read): Likewise.
        * dbxread.c (read_dbx_symtab): Ditto.
This commit is contained in:
Joel Brobecker 2011-03-17 13:19:24 +00:00
parent d645e32eb8
commit d4862372c6
6 changed files with 33 additions and 80 deletions

View file

@ -1,3 +1,15 @@
2011-03-17 Joel Brobecker <brobecker@gnat.com>
* target.h (struct target_ops): Remove to_lookup_symbol field.
(target_lookup_symbol): Delete macro.
* target.c (nosymbol, debug_to_lookup_symbol): Delete.
(update_current_target, setup_target_debug): Remove handling
of to_lookup_symbol target_ops field.
* ada-tasks.c (get_known_tasks_addr): Remove use of
target_lookup_symbol.
* coffread.c (coff_symtab_read): Likewise.
* dbxread.c (read_dbx_symtab): Ditto.
2011-03-17 Joel Brobecker <brobecker@gnat.com> 2011-03-17 Joel Brobecker <brobecker@gnat.com>
PR gdb/12116: PR gdb/12116:

View file

@ -300,7 +300,7 @@ read_fat_string_value (char *dest, struct value *val, int max_len)
} }
/* Return the address of the Known_Tasks array maintained in /* Return the address of the Known_Tasks array maintained in
the Ada Runtime. Return NULL if the array could not be found, the Ada Runtime. Return zero if the array could not be found,
meaning that the inferior program probably does not use tasking. meaning that the inferior program probably does not use tasking.
In order to provide a fast response time, this function caches In order to provide a fast response time, this function caches
@ -317,13 +317,9 @@ get_known_tasks_addr (void)
struct minimal_symbol *msym; struct minimal_symbol *msym;
msym = lookup_minimal_symbol (KNOWN_TASKS_NAME, NULL, NULL); msym = lookup_minimal_symbol (KNOWN_TASKS_NAME, NULL, NULL);
if (msym != NULL) if (msym == NULL)
known_tasks_addr = SYMBOL_VALUE_ADDRESS (msym); return 0;
else known_tasks_addr = SYMBOL_VALUE_ADDRESS (msym);
{
if (target_lookup_symbol (KNOWN_TASKS_NAME, &known_tasks_addr) != 0)
return 0;
}
/* FIXME: brobecker 2003-03-05: Here would be a much better place /* FIXME: brobecker 2003-03-05: Here would be a much better place
to attach the ada-tasks observers, instead of doing this to attach the ada-tasks observers, instead of doing this

View file

@ -902,22 +902,14 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
if (cs->c_secnum == N_UNDEF) if (cs->c_secnum == N_UNDEF)
{ {
/* This is a common symbol. See if the target /* This is a common symbol. We used to rely on
environment knows where it has been relocated to. */ the target to tell us whether it knows where
CORE_ADDR reladdr; the symbol has been relocated to, but none of
the target implementations actually provided
if (target_lookup_symbol (cs->c_name, &reladdr)) that operation. So we just ignore the symbol,
{ the same way we would do if we had a target-side
/* Error in lookup; ignore symbol. */ symbol lookup which returned no match. */
break; break;
}
tmpaddr = reladdr;
/* The address has already been relocated; make sure that
objfile_relocate doesn't relocate it again. */
sec = -2;
ms_type = cs->c_sclass == C_EXT
|| cs->c_sclass == C_THUMBEXT ?
mst_bss : mst_file_bss;
} }
else if (cs->c_secnum == N_ABS) else if (cs->c_secnum == N_ABS)
{ {

View file

@ -1401,24 +1401,16 @@ read_dbx_symtab (struct objfile *objfile)
goto record_it; goto record_it;
case N_UNDF | N_EXT: case N_UNDF | N_EXT:
if (nlist.n_value != 0) /* The case (nlist.n_value != 0) is a "Fortran COMMON" symbol.
{ We used to rely on the target to tell us whether it knows
/* This is a "Fortran COMMON" symbol. See if the target where the symbol has been relocated to, but none of the
environment knows where it has been relocated to. */ target implementations actually provided that operation.
So we just ignore the symbol, the same way we would do if
we had a target-side symbol lookup which returned no match.
CORE_ADDR reladdr; All other symbols (with nlist.n_value == 0), are really
undefined, and so we ignore them too. */
namestring = set_namestring (objfile, &nlist); continue;
if (target_lookup_symbol (namestring, &reladdr))
{
continue; /* Error in lookup; ignore symbol for now. */
}
nlist.n_type ^= (N_BSS ^ N_UNDF); /* Define it as a
bss-symbol. */
nlist.n_value = reladdr;
goto bss_ext_symbol;
}
continue; /* Just undefined, not COMMON. */
case N_UNDF: case N_UNDF:
if (processing_acc_compilation && nlist.n_strx == 1) if (processing_acc_compilation && nlist.n_strx == 1)

View file

@ -54,8 +54,6 @@ static int default_watchpoint_addr_within_range (struct target_ops *,
static int default_region_ok_for_hw_watchpoint (CORE_ADDR, int); static int default_region_ok_for_hw_watchpoint (CORE_ADDR, int);
static int nosymbol (char *, CORE_ADDR *);
static void tcomplain (void) ATTRIBUTE_NORETURN; static void tcomplain (void) ATTRIBUTE_NORETURN;
static int nomemory (CORE_ADDR, char *, int, int, struct target_ops *); static int nomemory (CORE_ADDR, char *, int, int, struct target_ops *);
@ -149,8 +147,6 @@ static void debug_to_terminal_info (char *, int);
static void debug_to_load (char *, int); static void debug_to_load (char *, int);
static int debug_to_lookup_symbol (char *, CORE_ADDR *);
static int debug_to_can_run (void); static int debug_to_can_run (void);
static void debug_to_notice_signals (ptid_t); static void debug_to_notice_signals (ptid_t);
@ -532,12 +528,6 @@ noprocess (void)
error (_("You can't do that without a process to debug.")); error (_("You can't do that without a process to debug."));
} }
static int
nosymbol (char *name, CORE_ADDR *addrp)
{
return 1; /* Symbol does not exist in target env. */
}
static void static void
default_terminal_info (char *args, int from_tty) default_terminal_info (char *args, int from_tty)
{ {
@ -621,7 +611,6 @@ update_current_target (void)
INHERIT (to_terminal_info, t); INHERIT (to_terminal_info, t);
/* Do not inherit to_kill. */ /* Do not inherit to_kill. */
INHERIT (to_load, t); INHERIT (to_load, t);
INHERIT (to_lookup_symbol, t);
/* Do no inherit to_create_inferior. */ /* Do no inherit to_create_inferior. */
INHERIT (to_post_startup_inferior, t); INHERIT (to_post_startup_inferior, t);
INHERIT (to_insert_fork_catchpoint, t); INHERIT (to_insert_fork_catchpoint, t);
@ -774,9 +763,6 @@ update_current_target (void)
de_fault (to_load, de_fault (to_load,
(void (*) (char *, int)) (void (*) (char *, int))
tcomplain); tcomplain);
de_fault (to_lookup_symbol,
(int (*) (char *, CORE_ADDR *))
nosymbol);
de_fault (to_post_startup_inferior, de_fault (to_post_startup_inferior,
(void (*) (ptid_t)) (void (*) (ptid_t))
target_ignore); target_ignore);
@ -3800,18 +3786,6 @@ debug_to_load (char *args, int from_tty)
fprintf_unfiltered (gdb_stdlog, "target_load (%s, %d)\n", args, from_tty); fprintf_unfiltered (gdb_stdlog, "target_load (%s, %d)\n", args, from_tty);
} }
static int
debug_to_lookup_symbol (char *name, CORE_ADDR *addrp)
{
int retval;
retval = debug_target.to_lookup_symbol (name, addrp);
fprintf_unfiltered (gdb_stdlog, "target_lookup_symbol (%s, xxx)\n", name);
return retval;
}
static void static void
debug_to_post_startup_inferior (ptid_t ptid) debug_to_post_startup_inferior (ptid_t ptid)
{ {
@ -4011,7 +3985,6 @@ setup_target_debug (void)
current_target.to_terminal_save_ours = debug_to_terminal_save_ours; current_target.to_terminal_save_ours = debug_to_terminal_save_ours;
current_target.to_terminal_info = debug_to_terminal_info; current_target.to_terminal_info = debug_to_terminal_info;
current_target.to_load = debug_to_load; current_target.to_load = debug_to_load;
current_target.to_lookup_symbol = debug_to_lookup_symbol;
current_target.to_post_startup_inferior = debug_to_post_startup_inferior; current_target.to_post_startup_inferior = debug_to_post_startup_inferior;
current_target.to_insert_fork_catchpoint = debug_to_insert_fork_catchpoint; current_target.to_insert_fork_catchpoint = debug_to_insert_fork_catchpoint;
current_target.to_remove_fork_catchpoint = debug_to_remove_fork_catchpoint; current_target.to_remove_fork_catchpoint = debug_to_remove_fork_catchpoint;

View file

@ -479,7 +479,6 @@ struct target_ops
void (*to_terminal_info) (char *, int); void (*to_terminal_info) (char *, int);
void (*to_kill) (struct target_ops *); void (*to_kill) (struct target_ops *);
void (*to_load) (char *, int); void (*to_load) (char *, int);
int (*to_lookup_symbol) (char *, CORE_ADDR *);
void (*to_create_inferior) (struct target_ops *, void (*to_create_inferior) (struct target_ops *,
char *, char *, char **, int); char *, char *, char **, int);
void (*to_post_startup_inferior) (ptid_t); void (*to_post_startup_inferior) (ptid_t);
@ -1016,17 +1015,6 @@ extern void target_kill (void);
extern void target_load (char *arg, int from_tty); extern void target_load (char *arg, int from_tty);
/* Look up a symbol in the target's symbol table. NAME is the symbol
name. ADDRP is a CORE_ADDR * pointing to where the value of the
symbol should be returned. The result is 0 if successful, nonzero
if the symbol does not exist in the target environment. This
function should not call error() if communication with the target
is interrupted, since it is called from symbol reading, but should
return nonzero, possibly doing a complain(). */
#define target_lookup_symbol(name, addrp) \
(*current_target.to_lookup_symbol) (name, addrp)
/* Start an inferior process and set inferior_ptid to its pid. /* Start an inferior process and set inferior_ptid to its pid.
EXEC_FILE is the file to run. EXEC_FILE is the file to run.
ALLARGS is a string containing the arguments to the program. ALLARGS is a string containing the arguments to the program.