2002-10-28 David Carlton <carlton@math.stanford.edu>
* symtab.c (find_addr_symbol): Delete. (It was already commented out.) * symtab.h: Delete prototype for find_addr_symbol.
This commit is contained in:
parent
b1744eabdd
commit
e70ea697bd
3 changed files with 6 additions and 95 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2002-10-28 David Carlton <carlton@math.stanford.edu>
|
||||||
|
|
||||||
|
* symtab.c (find_addr_symbol): Delete. (It was already commented
|
||||||
|
out.)
|
||||||
|
* symtab.h: Delete prototype for find_addr_symbol.
|
||||||
|
|
||||||
2002-10-26 Andrew Cagney <cagney@redhat.com>
|
2002-10-26 Andrew Cagney <cagney@redhat.com>
|
||||||
|
|
||||||
* gdbarch.sh (DEPRECATED_DO_REGISTERS_INFO): Rename
|
* gdbarch.sh (DEPRECATED_DO_REGISTERS_INFO): Rename
|
||||||
|
|
88
gdb/symtab.c
88
gdb/symtab.c
|
@ -1692,94 +1692,6 @@ find_pc_symtab (CORE_ADDR pc)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
|
|
||||||
/* Find the closest symbol value (of any sort -- function or variable)
|
|
||||||
for a given address value. Slow but complete. (currently unused,
|
|
||||||
mainly because it is too slow. We could fix it if each symtab and
|
|
||||||
psymtab had contained in it the addresses ranges of each of its
|
|
||||||
sections, which also would be required to make things like "info
|
|
||||||
line *0x2345" cause psymtabs to be converted to symtabs). */
|
|
||||||
|
|
||||||
struct symbol *
|
|
||||||
find_addr_symbol (CORE_ADDR addr, struct symtab **symtabp, CORE_ADDR *symaddrp)
|
|
||||||
{
|
|
||||||
struct symtab *symtab, *best_symtab;
|
|
||||||
struct objfile *objfile;
|
|
||||||
register int bot, top;
|
|
||||||
register struct symbol *sym;
|
|
||||||
register CORE_ADDR sym_addr;
|
|
||||||
struct block *block;
|
|
||||||
int blocknum;
|
|
||||||
|
|
||||||
/* Info on best symbol seen so far */
|
|
||||||
|
|
||||||
register CORE_ADDR best_sym_addr = 0;
|
|
||||||
struct symbol *best_sym = 0;
|
|
||||||
|
|
||||||
/* FIXME -- we should pull in all the psymtabs, too! */
|
|
||||||
ALL_SYMTABS (objfile, symtab)
|
|
||||||
{
|
|
||||||
/* Search the global and static blocks in this symtab for
|
|
||||||
the closest symbol-address to the desired address. */
|
|
||||||
|
|
||||||
for (blocknum = GLOBAL_BLOCK; blocknum <= STATIC_BLOCK; blocknum++)
|
|
||||||
{
|
|
||||||
QUIT;
|
|
||||||
block = BLOCKVECTOR_BLOCK (BLOCKVECTOR (symtab), blocknum);
|
|
||||||
ALL_BLOCK_SYMBOLS (block, bot, sym)
|
|
||||||
{
|
|
||||||
switch (SYMBOL_CLASS (sym))
|
|
||||||
{
|
|
||||||
case LOC_STATIC:
|
|
||||||
case LOC_LABEL:
|
|
||||||
sym_addr = SYMBOL_VALUE_ADDRESS (sym);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case LOC_INDIRECT:
|
|
||||||
sym_addr = SYMBOL_VALUE_ADDRESS (sym);
|
|
||||||
/* An indirect symbol really lives at *sym_addr,
|
|
||||||
* so an indirection needs to be done.
|
|
||||||
* However, I am leaving this commented out because it's
|
|
||||||
* expensive, and it's possible that symbolization
|
|
||||||
* could be done without an active process (in
|
|
||||||
* case this read_memory will fail). RT
|
|
||||||
sym_addr = read_memory_unsigned_integer
|
|
||||||
(sym_addr, TARGET_PTR_BIT / TARGET_CHAR_BIT);
|
|
||||||
*/
|
|
||||||
break;
|
|
||||||
|
|
||||||
case LOC_BLOCK:
|
|
||||||
sym_addr = BLOCK_START (SYMBOL_BLOCK_VALUE (sym));
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sym_addr <= addr)
|
|
||||||
if (sym_addr > best_sym_addr)
|
|
||||||
{
|
|
||||||
/* Quit if we found an exact match. */
|
|
||||||
best_sym = sym;
|
|
||||||
best_sym_addr = sym_addr;
|
|
||||||
best_symtab = symtab;
|
|
||||||
if (sym_addr == addr)
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
done:
|
|
||||||
if (symtabp)
|
|
||||||
*symtabp = best_symtab;
|
|
||||||
if (symaddrp)
|
|
||||||
*symaddrp = best_sym_addr;
|
|
||||||
return best_sym;
|
|
||||||
}
|
|
||||||
#endif /* 0 */
|
|
||||||
|
|
||||||
/* Find the source file and line number for a given PC value and SECTION.
|
/* Find the source file and line number for a given PC value and SECTION.
|
||||||
Return a structure containing a symtab pointer, a line number,
|
Return a structure containing a symtab pointer, a line number,
|
||||||
and a pc range for the entire source line.
|
and a pc range for the entire source line.
|
||||||
|
|
|
@ -1261,13 +1261,6 @@ extern struct symtab_and_line find_pc_line (CORE_ADDR, int);
|
||||||
|
|
||||||
extern struct symtab_and_line find_pc_sect_line (CORE_ADDR, asection *, int);
|
extern struct symtab_and_line find_pc_sect_line (CORE_ADDR, asection *, int);
|
||||||
|
|
||||||
/* Given an address, return the nearest symbol at or below it in memory.
|
|
||||||
Optionally return the symtab it's from through 2nd arg, and the
|
|
||||||
address in inferior memory of the symbol through 3rd arg. */
|
|
||||||
|
|
||||||
extern struct symbol *find_addr_symbol (CORE_ADDR, struct symtab **,
|
|
||||||
CORE_ADDR *);
|
|
||||||
|
|
||||||
/* Given a symtab and line number, return the pc there. */
|
/* Given a symtab and line number, return the pc there. */
|
||||||
|
|
||||||
extern int find_line_pc (struct symtab *, int, CORE_ADDR *);
|
extern int find_line_pc (struct symtab *, int, CORE_ADDR *);
|
||||||
|
|
Loading…
Add table
Reference in a new issue