This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: Petr Sorfa's Dwarf 2 changes
- From: Daniel Jacobowitz <drow at mvista dot com>
- To: Jim Blandy <jimb at redhat dot com>, John Wolfe <jlw at caldera dot com>
- Cc: Andrew Cagney <ac131313 at redhat dot com>, gdb at sources dot redhat dot com
- Date: Mon, 4 Nov 2002 15:26:41 -0500
- Subject: Re: Petr Sorfa's Dwarf 2 changes
- References: <200210231720.g9NHKqO32140@zenia.red-bean.com> <3DB6EEE6.1060100@redhat.com> <vt2fzuhje0y.fsf@zenia.red-bean.com>
On Mon, Nov 04, 2002 at 03:06:21PM -0500, Jim Blandy wrote:
>
> Andrew Cagney <ac131313@redhat.com> writes:
> > > I'm undertaking some related work in dwarf2read.c which will almost
> > > certainly conflict with Caldera's changes, and I'd like to see where
> > > you guys ended up.
> >
> > Care to expand?
>
> Sure --- I'm trying to put together a patch to support
> inter-compilation unit die references, which is (the hardest?) part of
> supporting Dwarf 2 compression.
>
> I think the changes are going to be pretty widespread.
>
> At the moment, dwarf2read.c has a number of global variables that
> describe per-compilation-unit things. These get set as we do the
> psymtab scan, stashed in each psymtab we create, and then restored
> each time we convert a psymtab to a symtab. If we're going to handle
> inter-CU references, we're going to be dealing with more than one CU
> at a time, so that's not going to be sufficient any more --- which CU
> you need depends on which die you're looking at.
>
> I'd like to change GDB to have a per-objfile Dwarf-specific structure
> (like struct dbx_symfile_info for STABS), and per-CU Dwarf-specific
> structures. These would be passed as arguments amongst the
> dwarf2read.c functions as appropriate. Furthermore, each die might
> need to have a pointer to the CU that owns it.
>
> Those are pretty pervasive changes, but I think the folks who have
> worked in dwarf2read.c will agree that they're the right way to go.
> When I've gotten something working on the branch I'll have more
> perspective on what's really needed.
Not only will they agree, I believe Petr and John had already finished
doing this. Doubtless there's still some room for improvement, but the
functionality is there... John, do you have that merged dwarf2read
available?
[For instance, from Petr's July posting:
* dwarf2read.c (build_die_ref): New function that builds
a new die reference if necessary, will search across
multiple comp units to find the reference.
(find_die_ref): New function that searches for a die
reference for a given comp unit.
(find_cu_header_from_begin_offset): New function that
searches through a link list of comp unit headers for
a comp unit that matches the given offset.
]
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer