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: Petr Sorfa's Dwarf 2 changes


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


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