https://issues.dlang.org/show_bug.cgi?id=18881
Issue ID: 18881 Summary: extern(C++) classes don't work properly in debuginfo Product: D Version: D2 Hardware: x86 OS: Windows Status: NEW Severity: enhancement Priority: P1 Component: visuald Assignee: nob...@puremagic.com Reporter: turkey...@gmail.com Here's a test class: -------------------------------------------- extern(C++) class BaseCPP { ~this() {} void poo() {} int x = 10; int y = 20; } extern(C++) class DerivedCPP : BaseCPP { int z; } void main() { DerivedCPP d = new DerivedCPP; BaseCPP b = d; int x = 10; // PLACE BREAKPOINT HERE } -------------------------------------------- At the breakpoint, inspect the value of 'b'. You should expect to see: - b 0x0073fb2c {z=0} BaseCPP* {DerivedCPP} + [DerivedCPP] {z=0} DerivedCPP + __vfptr 0x00394c50 {DerivedCPP.__vftable} void** x 10 int y 20 int But instead, there is only the 2 members of BaseCPP: `x` and `y`. extern(C++) classes are missing their type, entry to get from base-class pointer to the most-derived type, and the vtable. C++ populates the class with all this information, so extern(C++) classes should be able to show the exact same set of members as when debugging in C++? --