This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Strange error message from gdb
Daniel Jacobowitz writes:
> On Wed, Dec 19, 2007 at 05:21:50PM +0000, Andrew Haley wrote:
> > Die: DW_TAG_interface_type (abbrev = 23, offset = 4181)
> > has children: FALSE
> > attributes:
> > DW_AT_declaration (DW_FORM_flag) flag: TRUE
> > Dwarf Error: Cannot find type of die [in module /home/aph/a.out]
> >
> > I suppose this means that gcj is generating bad debug info, but I
> > don't know what it's complaining about exactly, so I don't know how to
> > fix it.
> >
> > Here's the abbrev in question:
> >
> > <1><1055>: Abbrev Number: 23 (DW_TAG_interface_type)
> > <1056> DW_AT_declaration : 1
>
> That DIE doesn't have any content. It says "I am a declartion of an
> interface". But not which interface or what it's called or what the
> type is.
Well, the type is the interface: there's nothing else it might be.
> I'd need a backtrace to be more specific, but in addition to bad
> debug info this may be a limitation in GDB; it does not know
> anything about DW_TAG_interface_type.
OK, thanks.
Anyway, on inspection it seems like read_type_die() in dwarf2read.c
doesn't know how to handle DW_TAG_interface_type. This is rather odd,
given that dwarf_tag_name() does know about interface types.
Maybe I should just fix gcj not to use DW_TAG_interface_type.
Andrew.
--
Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SL4 1TE, UK
Registered in England and Wales No. 3798903