Re: D Symbol Demangling

John Demme
2005-04-08T20:50:59Z

On Fri, 2005-04-08 at 12:52 -0400, Daniel Jacobowitz wrote:
> On Fri, Apr 08, 2005 at 12:47:51PM -0400, John Demme wrote:
> > I finally had time to play firefighter, and I found the fire as well.
> > If you compile a D application without DWARF2 information, my gdb
> > patches work just fine... how do ya like that?
> >
> > Now I REALLY have an excuse to yell at the compiler programmer.
> >
> > I don't really understand why bad DWARF2 information would screw up GDB
> > like that, considering that I call my function at the point where GDB
> > tries to demangle a symbol, but I don't really understand how GDB works.
> >
> > Thanks for your help... Expect to hear more from me in the future
> > concerning this.
>
> Presumably because you don't have a DWARF language code for D. What's
> it labelling the language as in the DW_TAG_compile_unit DIE?
>

According to the compiler programmer,
"The DW_TAG_compile_unit is not the right thing. What it does do is
write
into the prolog DW_LANG_C89, masquerading as C. When GDB gets a
DW_LANG_D,
I'll switch to that."

I assume this is correct... so does anyone know what is involved in
getting DW_LANG_D? Where might one find contact information for the
DWARF working group?

> You can define one temporarily for now, but you'll need to request from
> the DWARF working group eventually.
>
> > BTW... assuming I can get a decent patch together to bring D support to
> > GDB, would it stand a good chance of being put in the main GDB tree?
>
> Perhaps. Are there multiple implementations of D? How inconsistent
> are they in ways that would affect GDB?

There are currently two. DMD, the reference implementation, has an open
source front-end, and a closed-source backend. GDC, the other compiler,
uses the front-end from DMD, and GCC's backend. I'm not sure what this
means for operation with GDB. It would be nice to have possible
inconsistencies in the D language spec, so as to avoid them. Since I'm
currently working on it, I'm going to suggest the DMD's method of symbol
mangling become part of the spec. Keeping in mind that D is very
similar to C, is there anything else I should suggest?

>
> If you want to do this, you will eventually need a GDB copyright
> assignment with the FSF.
>
I assume this is to assign copyrights to the FSF... I have no problem
with that. Where do I sign up?

Thanks
John Demme