Re: [lldb-dev] RTTI does not work stable in LLDB.

2017-02-06 Thread Roman Popov via lldb-dev
Hello, I just found out that sometimes I don't get correct dynamic type in LLDB even if I compile with g++. How can I get typeinfo/vtable dump from LLDB to check if it is still the same name matching issue? 2017-02-06 17:04 GMT-08:00 Robinson, Paul via lldb-dev < lldb-dev@lists.llvm.org>: > Yes,

Re: [lldb-dev] RTTI does not work stable in LLDB.

2017-02-06 Thread Robinson, Paul via lldb-dev
Yes, I do get that it was just unfortunate timing. Sorry for failing at being light-hearted. I suspect the compiler can be persuaded to emit a name consistent with the demangling of the vtable name. Despite being the way-things-have-worked for a long time, it still seems moderately fragile, e

Re: [lldb-dev] RTTI does not work stable in LLDB.

2017-02-06 Thread Greg Clayton via lldb-dev
> On Feb 6, 2017, at 3:38 PM, Robinson, Paul wrote: > > It's not practical for the DWARF to try to identify the actual address of the > vtable; that address might not be available. > it seems like we could hang onto the linkage_name of the vtable though, > somewhere, so you wouldn't be relying

Re: [lldb-dev] RTTI does not work stable in LLDB.

2017-02-06 Thread Robinson, Paul via lldb-dev
It's not practical for the DWARF to try to identify the actual address of the vtable; that address might not be available. it seems like we could hang onto the linkage_name of the vtable though, somewhere, so you wouldn't be relying on the demangler you have available at runtime to produce the s

Re: [lldb-dev] RTTI does not work stable in LLDB.

2017-02-06 Thread Greg Clayton via lldb-dev
It just says where it is inside the class itself, not what the value of the vtable pointer is: 0x6628: TAG_structure_type [112] * AT_containing_type( {0x6628} ) AT_name( "base_type" ) AT_byte_size( 0x08 ) AT_d

Re: [lldb-dev] RTTI does not work stable in LLDB.

2017-02-06 Thread Zachary Turner via lldb-dev
Doesn't the DWARF have a record for the VTable itself? I know PDB does, you can look up the class name through the VTable debug info record rather than trying to demangle the name. On Mon, Feb 6, 2017 at 2:21 PM Greg Clayton via lldb-dev < lldb-dev@lists.llvm.org> wrote: > Yeah, when doing dynam

Re: [lldb-dev] RTTI does not work stable in LLDB.

2017-02-06 Thread Greg Clayton via lldb-dev
Yeah, when doing dynamic type resolution, we look at the first pointer inside the pointer and see if it resolves to a virtual table symbol. If it does, we extract the class name from the demangled symbol name and try to look up. GDB does the same thing. All debuggers do AFAIK. If the DWARF spec

Re: [lldb-dev] RTTI does not work stable in LLDB.

2017-02-06 Thread Roman Popov via lldb-dev
I confirm GCC4.8 puts derived0 into DWARF and LLDB correctly identifies dynamic type. 2017-02-06 11:48 GMT-08:00 Robinson, Paul via lldb-dev < lldb-dev@lists.llvm.org>: > So is LLDB expecting the name in the DWARF info to match the demangled > name of the vtable pointer? The DWARF spec does not

Re: [lldb-dev] RTTI does not work stable in LLDB.

2017-02-06 Thread Robinson, Paul via lldb-dev
So is LLDB expecting the name in the DWARF info to match the demangled name of the vtable pointer? The DWARF spec does not really specify what the name of a template instantiation should be, and in particular does not *want* to specify whether it matches any given demangler's opinion of the nam

Re: [lldb-dev] RTTI does not work stable in LLDB.

2017-02-06 Thread Greg Clayton via lldb-dev
So I found the problem. This is a compiler bug. The DWARF for this type looks like: 0x65da: TAG_structure_type [112] * AT_containing_type( {0x6628} ) AT_name( "derived0" ) AT_byte_size( 0x08 ) AT_decl_file( "/

Re: [lldb-dev] RTTI does not work stable in LLDB.

2017-02-06 Thread Greg Clayton via lldb-dev
I am looking at this now. I will let you know what I find. Greg > On Feb 6, 2017, at 10:00 AM, Roman Popov wrote: > > Yes, that was my thought. > > FYI, checked in GDB: it's working correctly on this testcase showing correct > dynamic type in both cases. > > 2017-02-06 9:48 GMT-08:00 Greg C

Re: [lldb-dev] RTTI does not work stable in LLDB.

2017-02-06 Thread Roman Popov via lldb-dev
Yes, that was my thought. FYI, checked in GDB: it's working correctly on this testcase showing correct dynamic type in both cases. 2017-02-06 9:48 GMT-08:00 Greg Clayton : > You have found a bug. It should be reporting this correctly but it isn’t. > I verified it fails on MacOSX. > > Greg Clayto

Re: [lldb-dev] RTTI does not work stable in LLDB.

2017-02-06 Thread Greg Clayton via lldb-dev
You have found a bug. It should be reporting this correctly but it isn’t. I verified it fails on MacOSX. Greg Clayton > On Feb 5, 2017, at 1:19 PM, Roman Popov via lldb-dev > wrote: > > Hello, > I'm observing very strange LLDB behavior: it does not always shows a correct > dynamic type when