This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA/commit/dwarf] Create partial symbols for nested subprograms
- From: Daniel Jacobowitz <drow at false dot org>
- To: Joel Brobecker <brobecker at adacore dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Wed, 10 Sep 2008 16:34:37 -0400
- Subject: Re: [RFA/commit/dwarf] Create partial symbols for nested subprograms
- References: <20080910201959.GC10133@adacore.com>
On Wed, Sep 10, 2008 at 01:19:59PM -0700, Joel Brobecker wrote:
> I stumbled on this because I am about to remove the piece of code
> mentioned above (in ada_lookup_symbol_list), as it introduces
> a pretty significant performance penalty - I will post a separate
> patch with more details later on. But at the same time, I think
> it is important by itself, as I want the partial symtab and full
> symtab to be consistent.
>
> 2008-09-10 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.
:-(
Do you have any performance data for GDB startup with this change?
Not that I see any useful way around it, if subprograms really can be
children of lexical blocks. But it's going to cause us to read in a
ton more DIEs, including all scopes and local variables.
The lexical block check won't work as is; we'd walk children of
lexical blocks, except we'll never read one in the first place.
See the skip_one_die call earlier in load_partial_dies.
--
Daniel Jacobowitz
CodeSourcery