* symtab.c (lookup_symbol_aux): In the cases where we find a
minimal symbol of an appropriate name and use its address to select a symtab to read and search, use `name' (as passed to us) as the demangled name when searching the symtab's global and static blocks, not the minsym's name.
This commit is contained in:
parent
80977a89c9
commit
c7612d5319
@ -1,3 +1,11 @@
|
||||
2002-08-29 Jim Blandy <jimb@redhat.com>
|
||||
|
||||
* symtab.c (lookup_symbol_aux): In the cases where we find a
|
||||
minimal symbol of an appropriate name and use its address to
|
||||
select a symtab to read and search, use `name' (as passed to us)
|
||||
as the demangled name when searching the symtab's global and
|
||||
static blocks, not the minsym's name.
|
||||
|
||||
2002-08-29 Keith Seitz <keiths@redhat.com>
|
||||
|
||||
* stack.c (print_frame_info_base): Always set current_source_symtab
|
||||
|
21
gdb/symtab.c
21
gdb/symtab.c
@ -860,14 +860,19 @@ lookup_symbol_aux (const char *name, const char *mangled_name,
|
||||
/* This is a function which has a symtab for its address. */
|
||||
bv = BLOCKVECTOR (s);
|
||||
block = BLOCKVECTOR_BLOCK (bv, GLOBAL_BLOCK);
|
||||
sym = lookup_block_symbol (block, SYMBOL_NAME (msymbol),
|
||||
mangled_name, namespace);
|
||||
|
||||
/* This call used to pass `SYMBOL_NAME (msymbol)' as the
|
||||
`name' argument to lookup_block_symbol. But the name
|
||||
of a minimal symbol is always mangled, so that seems
|
||||
to be clearly the wrong thing to pass as the
|
||||
unmangled name. */
|
||||
sym = lookup_block_symbol (block, name, mangled_name, namespace);
|
||||
/* We kept static functions in minimal symbol table as well as
|
||||
in static scope. We want to find them in the symbol table. */
|
||||
if (!sym)
|
||||
{
|
||||
block = BLOCKVECTOR_BLOCK (bv, STATIC_BLOCK);
|
||||
sym = lookup_block_symbol (block, SYMBOL_NAME (msymbol),
|
||||
sym = lookup_block_symbol (block, name,
|
||||
mangled_name, namespace);
|
||||
}
|
||||
|
||||
@ -1027,14 +1032,18 @@ lookup_symbol_aux (const char *name, const char *mangled_name,
|
||||
{
|
||||
bv = BLOCKVECTOR (s);
|
||||
block = BLOCKVECTOR_BLOCK (bv, GLOBAL_BLOCK);
|
||||
sym = lookup_block_symbol (block, SYMBOL_NAME (msymbol),
|
||||
mangled_name, namespace);
|
||||
/* This call used to pass `SYMBOL_NAME (msymbol)' as the
|
||||
`name' argument to lookup_block_symbol. But the name
|
||||
of a minimal symbol is always mangled, so that seems
|
||||
to be clearly the wrong thing to pass as the
|
||||
unmangled name. */
|
||||
sym = lookup_block_symbol (block, name, mangled_name, namespace);
|
||||
/* We kept static functions in minimal symbol table as well as
|
||||
in static scope. We want to find them in the symbol table. */
|
||||
if (!sym)
|
||||
{
|
||||
block = BLOCKVECTOR_BLOCK (bv, STATIC_BLOCK);
|
||||
sym = lookup_block_symbol (block, SYMBOL_NAME (msymbol),
|
||||
sym = lookup_block_symbol (block, name,
|
||||
mangled_name, namespace);
|
||||
}
|
||||
/* If we found one, return it */
|
||||
|
Loading…
Reference in New Issue
Block a user