This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: [Fwd: gdb "call" very slow on large C++ program; 2 possible patches]
On Fri, Dec 07, 2001 at 01:09:44PM -0500, Elena Zannoni wrote:
> Daniel Jacobowitz writes:
> > On Fri, Dec 07, 2001 at 11:21:32AM -0500, Elena Zannoni wrote:
> > > Yes, something like that happened. I am thinking to send a patch to
> > > restore some sanity to this function. But...
> > >
> > > ...actually, I think that if search_symbols on FUNCTION_NAMESPACES is
> > > equivalent to make_symbol_overload_list(), we could just get rid of
> > > make_symbol_overload_list() *and* overload_list_add_symbol().
> > >
> > > It would be nice to clean this up.
> > >
> > > Daniel, does search_symbols produces a correct overload list? At first
> > > sight it would look so.
> >
> > Well, I'm not immediately familiar with this code. At first thought,
> > there might be some complexity because search_symbols takes a regexp,
> > but that's easily resolvable. More importantly,
> > make_symbol_overload_list respects scope. So no, the two are not
> > equivalent.
> >
>
> I was looking at the fact that make_symbol_overload_list is used only
> for c++ non-member functions, and that search_symbols limits the
> search to functions.
OK. So it looks like we're stuck keeping these functions.
> > I found at least one more bug in overload_list_add_symbol (extraneous
> > realloc calls) while looking this over, though. I also understand
> > where those loops came from, more or less; see make_completion_list.
> > This function (and its comments) need some housecleaning.
> >
>
> Yes, there were calls (which were wrong) to overload_list_add_symbol,
> in each loop. Sometimes ago, the #if 0 was lost, and so were the calls
> in the loops.
I see. I guess we just need
ALL_PSYMTABS (objfile, ps)
{
if (!ps->readin)
s = PSYMTAB_TO_SYMTAB (ps);
}
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer