aboutsummaryrefslogtreecommitdiff
path: root/gdb/symtab.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/symtab.c')
-rw-r--r--gdb/symtab.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/gdb/symtab.c b/gdb/symtab.c
index b09ccae..2ade65fc 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -1319,7 +1319,21 @@ lookup_block_symbol (block, name, namespace)
PC, then use the main symbol.
?!? Is checking the current pc correct? Is this routine
- ever called to look up a symbol from another context? */
+ ever called to look up a symbol from another context?
+
+ FIXME: No, it's not correct. If someone sets a
+ conditional breakpoint at an address, then the
+ breakpoint's `struct expression' should refer to the
+ `struct symbol' appropriate for the breakpoint's
+ address, which may not be the PC.
+
+ Even if it were never called from another context,
+ it's totally bizarre for lookup_symbol's behavior to
+ depend on the value of the inferior's current PC. We
+ should pass in the appropriate PC as well as the
+ block. The interface to lookup_symbol should change
+ to require the caller to provide a PC. */
+
if (SYMBOL_ALIASES (sym))
sym = find_active_alias (sym, read_pc ());