This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [rfa/dwarf/doc] Inter-compilation-unit reference support for partial DIEs
- From: Daniel Jacobowitz <drow at false dot org>
- To: gdb-patches at sources dot redhat dot com, jimb at redhat dot com, ezannoni at redhat dot com,eliz at gnu dot org
- Date: Wed, 16 Jun 2004 23:42:02 -0400
- Subject: Re: [rfa/dwarf/doc] Inter-compilation-unit reference support for partial DIEs
- References: <20040420170855.GA31548@nevyn.them.org>
Two month ping.
Retested on i686-pc-linux-gnu, no regressions. To my surprise the
patch still applies and works after Joel's psymtab changes.
I think his approach creates a lot of unnecessary psymtabs; I'll have a
closer look at that when I prepare the next patch in this series.
They're only sort of unnecessary now, in that we get a psymtab for each
instance of an included header; when used with inter-CU references they
well be completely unnecessary, because we'll have real psymtabs. So
there should be a way to detect that a psymtab containing all the
information of the pseudo-psymtab already exists.
On Tue, Apr 20, 2004 at 01:08:55PM -0400, Daniel Jacobowitz wrote:
> Dwarf changes OK? Doc changes OK? Comments/suggestions?
> 2004-04-20 Daniel Jacobowitz <drow@mvista.com>
>
> * Makefile.in (dwarf2read.o): Update dependencies.
> * dwarf2read.c: Include "splay-tree.h", "command.h", and
> "gdbcmd.h".
> (struct dwarf2_per_objfile): Add cu_tree and read_in_chain.
> (struct dwarf2_cu): Add read_in_chain, per_cu, last_used,
> mark, and has_form_ref_addr.
> (struct dwarf2_per_cu_data): New.
> (dwarf2_max_cache_age): New.
> (dwarf2_build_psymtabs_hard): Free cached compilation units
> after loading. Create and manage the cu_tree.
> (psymtab_to_symtab_1): Initialize cu.
> (dwarf2_read_abbrevs): Set has_form_ref_addr.
> (find_partial_die): Use dwarf2_find_containing_comp_unit
> and load_comp_unit.
> (free_stack_comp_unit): Update comments. Clear the per-cu
> pointer. Handle aging.
> (dwarf2_find_containing_comp_unit, free_cached_comp_units)
> (age_cached_comp_units, free_one_cached_comp_unit)
> (dwarf2_mark, dwarf2_clear_marks, splay_tree_obstack_allocate)
> (create_comp_unit_tree, load_comp_unit, set_dwarf2_cmdlist)
> (show_dwarf2_cmdlist, set_dwarf2_cmd, show_dwarf2_cmd): New.
> (_initialize_dwarf2_read): Provide "maint set dwarf2 max-cache-age"
> and "maint show dwarf2 max-cache-age".
> * gdbcmd.h (maintenance_set_cmdlist, maintenance_show_cmdlist): New
> externs.
> * maint.c (maintenance_set_cmdlist, maintenance_show_cmdlist): Make
> global.
>
> 2004-04-20 Daniel Jacobowitz <drow@mvista.com>
>
> * gdb.texinfo (Maintenance Commands): Document "maint set dwarf2
> max-cache-age" and "maint show dwarf2 max-cache-age".
--
Daniel Jacobowitz