https://issues.dlang.org/show_bug.cgi?id=18846
Issue ID: 18846 Summary: VisualD - show vtable in debugger Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: visuald Assignee: nob...@puremagic.com Reporter: turkey...@gmail.com Compile and debug this code (using Mago): ----------------------------------- C++: ---- #include <stdio.h> class Something { public: virtual void x(); int data = 10; }; void Something::x() { printf("X"); } void dfunc(Something*); void main() { Something s; dfunc(&s); } ----------------------------------- D: -- extern(C++) class Something { abstract void x(); int data; } extern(C++) void dfunc(Something s) { s.x(); } ----------------------------------- Put a breakpoint in dfunc(). If you inspect 's' in C++, you will see "__vfptr ..." and "data = 10" If you inspect 's' from D, you will only see "data = 10" In C++, __vfptr is an array of "void*" that you can open and see a list of all the virtual functions. I really want to be able to see __vfptr from D's debuginfo too. At very least, it will help to debug mis-alignments between C++ and extern(C++) vtables. It's very easy to create a vtable mismatch from D. If the debuginfo doesn't want to emit this member (it should), then I think it might also be possible to fabricate its appearance with the natvis? --