Re: gdb 8.x - g++ 7.x compatibility

Michael Matz
2018-02-08T11:26:51Z

Hi,

On Wed, 7 Feb 2018, Simon Marchi wrote:

> On 2018-02-07 12:30, Jonathan Wakely wrote:
> >> Ah ok, the class name appears mangled in other entities' mangled name. But
> >> from what I understand there's no mangled name for the class such that
> >>
> >> echo <class mangled name> | c++filt
> >>
> >> outputs the class name (e.g. "Foo<10>"). That wouldn't make sense, since
> >> there's no symbol for the class itself.
> >
> > echo _Z3FooILi10EE | c++filt
>
> Ok, thanks for the precision!

As I said upthread, the mangled name of a type (sans _Z prefix) is what is
stored as the type name for RTTI purposes (i.e. std::type_info::name()).

It's just that the debug info currently doesn't have any reference to that
definitely-unique string, only to the "human-friendly" name, which
somewhat resembles the demangled name (and that's exactly the crux, it
really isn't the demangled one right now, as you found out the painful
way).

Ciao,
Michael.