This is the mail archive of the gdb-patches@sourceware.org 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: [RFA/commit/dwarf] Create partial symbols for nested subprograms


> I usually use 'gdb -batch foo.exe' to time reading partial symbols,
> and 'gdb -readnow -batch foo.exe' to time full symbols (only partial
> symbols are at issue here).

And use the  "time" command to measure the time elapsed? Somehow,
I got reported user times and total times that fluctuated a little
more than when I used the --statistics.

> Your users must be more patient than mine or Tom's :-)  I consider
> startup time to be pretty important, and I've been working on bringing
> it down... Tom's been working on an even more drastic version.

They must be :). I wish I had time to try to make this time shorter,
but the truth is we some other areas where I think improving performance
is more critical. For instance, we could still do better with symbol
lookups, but we are limited by the fact that we do our lookups by
linkage name. We need to change that, but the initial reason for doing
it that way is that because we had customers whose program was so big
that we exceeded the maximum amount of memory we could allocate. I have
some ideas on how to fix this and hopefully bring Ada back closer to
what C++ does, but that'll have to wait for a moment when things are
less hectic for me.

> Does it work / help to do the check here too:
> 
> >  	  && (load_all
> >  	      || last_die->tag == DW_TAG_namespace
> >  	      || last_die->tag == DW_TAG_enumeration_type
> > +	      || last_die->tag == DW_TAG_subprogram
> > +	      || last_die->tag == DW_TAG_lexical_block
> >  	      || (cu->language != language_c
> >  		  && (last_die->tag == DW_TAG_class_type
> >  		      || last_die->tag == DW_TAG_interface_type

Sure! Is that what you had in mind?

2008-09-11  Joel Brobecker  <brobecker@adacore.com>

        * dwarf2read.c (add_partial_subprogram): New procedure.
        (scan_partial_symbols): Use it.
        (load_partial_dies): Read in children of subprogram and lexical
        blocks for Ada compilation units.

Tested on x86-linux, no regression.

-- 
Joel

Attachment: nested.diff
Description: Text document


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