[Dwarf-discuss] tag nesting question
Martin Day
martin
Fri Dec 22 13:23:41 GMT 2006
> -----Original Message-----
> From: dwarf-discuss-bounces at lists.freestandards.org
> [mailto:dwarf-discuss-bounces at lists.freestandards.org] On
> Behalf Of Marcel Mettes
>
>
> > In the specific case of GCC, we'd either have to have a callback to
> > the C++ FE at debug info output to ask it whether it's
> struct/class,
> > or waste a bit in the type structure to store this info.
> >
> > I posted a patch about 3 years ago that wasted a bit.
> > See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=7081
> > and
> > http://gcc.gnu.org/ml/gcc-patches/2003-06/msg01748.html
> >
> > I never got back to updating it in response to the comments, even
> > though they were very minor, as i started law school back up again
> > soon after.
> >
> > If you really feel like it, you could update this patch and
> resubmit
> > it.
> >
> > Nowadays, I think it's a waste of time to differentiate the two :)
> >
> >
> As being someone who works on debuggers, I would love to see
> the extra info. One of my personal goals for the debugger is
> that it shows exactly what
> was present in the original source code that was compiled, so that
> someone who is debugging may spot an error because of the
> actual input.
> Hiding differences like struct versus class is not likely to
> hide bugs,
> but in general I prefer as much detail as possible.
>
> Also, with g++ compiled objects, the debugger must first use
> some test
> to detect how to display DW_TAG_struct_type (personally I do
> not want to
> see struct when debugging C++) which I do not like much
> myself. I would
> like to use as little heuristics as possible, there is enough
> confusion
> already :-).
I agree. I would much prefer our debuggers to be able to show the type as
"class x" or "struct x" as appropriate. Currently, for gcc built debug info,
we have to take a guess.
It also makes sense to only accept the correct kind of tag when evaluating a
type cast expression. e.g. only accept "(struct x*) 0x1000" when x is a
struct and not "(class x*) 0x1000".
Martin
More information about the Dwarf-discuss
mailing list