This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFC] lookup problem in blockframe.c:inside_main_func()
On Mon, Oct 06, 2003 at 05:24:22PM -0700, Joel Brobecker wrote:
> > [First of all, what path takes you through lookup_symbol to that
> > prompt? That shouldn't ever happen, unless it's being generated in
> > Ada-specific code...]
>
> It is generated in ada-specific code. Just FYI, here is our ada-specific
> lookup function, which is hooked into the language vector:
>
> struct symbol *
> ada_lookup_symbol ([snip])
> {
> [snip]
> n_candidates = ada_lookup_symbol_list (ada_mangle (ada_fold_name (name)),
> block0, namespace, &candidates);
>
> if (n_candidates == 0)
> return NULL;
> else if (n_candidates != 1)
> user_select_syms (candidates, n_candidates, 1); <<<-----
> [snip]
> }
>
> user_select_syms causes the menu to appear...
Oh... I see that Ada already has an interface for selecting a list of
symbols. Another bit that doesn't belong anywhere near the
language-specific code, if you'll permit some historical ranting. That
should be pushed out to the symtab layer.
I'll be back to that after I finish something I'm working on in
the breakpoint code, so that the list of multiple symbols is actually
useful.
> > Don't use lookup_symbol? On David's branch there's a minsym function
> > for finding the minimal symbol associated with a mangled name. I
> > thought it had been merged to mainline but it hasn't. Something to do
> > the same for symbols would be reasonable, although rare.
>
> > Or you could
> > just use the minsym version, and then call find_pc_function.
>
> That's a good idea, I think. Lookup the minsym.... Hmmm, let me explore
> this path. Thanks!
Follow along with the code immediately above in the same function.
Beware, right now that minsym code may find the one which demangles to
main; but that should change.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer