Main Features
- conversion of DMD/DMC CodeView information to PDB file
- conversion of GDC DWARF information to PDB file
- converted line number info allows setting breakpoints
- display of variables, fields and objects in watch, local and auto window and in data tooltips
- convenient display of dynamic and associative arrays in watch windows
- demangled function names for convenient display of callstack
More features
This list is a bit more technical and shows what is actually done to achieve the desired functionality:
- replaces '.' in class names with '@' to avoid confusing debugger
- converts class pointers to reference for "clss.field" syntax
- converts the type of member function, so that "this" is an object pointer, allowing the debugger to display fields without "this."
- generates generic debug info for dynamic arrays, associative arrays and delegates
- creates readable type names for display of D specific types
- autoexp.dat formats output for dynamic and associative arrays in watch windows
- autoexp.dat filters display of null references
- adds object class debug info
- "char[]", "wchar[]" and "dchar[]" (D1) or "const char[]", "const wchar[]" and "const dchar[]" (D2) translated to "string", "wstring" and "dstring", respectively
- converts type delegate<void*,int> to __int64
- addin dviewhelper.dll allows correct display of D style strings and derived object type
Known issues
There are some quirks that you might run into when using Visual Studio to debug D programs. These will hopefully be removed in the future, but not all have a known solution.
- has to use '@' instead of '.' in class names to avoid confusing debugger, but it looks ugly
- "this.var" is not a valid debugger expression, you have to use "var" or "this->var"
- global/static vars have to be watched with full module and class name specified (e.g. module@globvar)
- type of associative arrays is displayed as aa<*> to allow overload in autoexp.dat
- DMD does not emit different debug information for const and invariant, type info is the same
- type display of delegate does not have arguments
Attachments
- cvtest.jpg (130.0 kB) -
Example debugger session showing some features
, added by sagitario on 05/08/09 16:16:11.