This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]