Note: This website is archived. For up-to-date information about D projects and development, please visit wiki.dlang.org.

Version History

2009-05-08 Version 0.1

  • initial release

2009-05-16 Version 0.2

  • replace .debug section in executable rather than rename it. (only works if it is the last section).
  • support for field type LF_VFUNCTAB and symbol type S_CONSTANT used by DMC.
  • added stringview to autoexp.dat for full length string display.

2009-06-04 Version 0.3

  • static members' debug info was not correctly converted, causing debugger confusion
  • now works on executables compiled by DMC
    • added command line switch -C to disable some D features and to remove function name from local variables
    • added support for type LF_BITFIELD.
  • added fields __viewhelper to classes string and object
  • new addin dviewhelper.dll to display correctly terminated strings and derived object type

2009-06-05 Version 0.4

  • fixed crash when long is used as index or element type of dynamic or associative arrays

2009-06-06 Version 0.5

  • fixed error in __viewhelper field of string type, that could screw up type info
  • added support for wstring and dstring
  • fixed problems with debug info inside library by combining debug info of different modules into a single pseudo-module
  • now also replaces '.' by '@' in enumerator types for more consistent debug info

2009-06-07 Version 0.6

  • removed LF_DERIVED entries from debug info, as they are inconsistent in DMD generated info with more than 4096 type entries

2009-06-08 Version 0.7

  • corrected number of field entries in classes or struct, because DMD miscounts private members

2009-06-11 Version 0.8

  • tweaked visualizer macros to detect uninitialized associative arrays and to limit expansion to arrays with less than 1024 entries
  • renamed data pointer member of dynamic arrays to "ptr" to be consistent with the array property in D.

2009-06-19 Version 0.9

  • fixed line number info at the end of a segment or when switching to another file because of inline expansion
  • fixed line numbers > 32767 and sections with 0 line number entries

2009-08-12 Version 0.10

  • better support for DMC:
    • entries LF_FRIENDFCN removed
    • entries LF_FRIENDCLS, LF_VBCLASS and LF_IVBCLASS converted thanks to Andrew.
  • derived-classes info in class entry now cleared to be consistent with removal of LF_DERIVED

2009-12-29 Version 0.11

2010-04-13 Version 0.12

  • added patch to convert binaries produced by Metroworks CodeWarrior
  • names of local function are now demangled
  • dmd 2.041 fixes long/ulong support (patch http://d.puremagic.com/issues/show_bug.cgi?id=3373 no longer needed)
  • added managed C++ project to integrate cv2pdb with CLR (thanks to Alexander Bothe)
  • dmd 2.043 uses different implementation of associative arrays, use command line option -D 2.043 or above to produce the respective debug info

2010-06-03 Version 0.13

  • adapted to mspdb100.dll which comes with VS2010
  • tweaked autoexp.dat modifications to be more stable with uninitialized data
  • autoexp.snippet now split into two files: autoexp.expand and autoexp.visualizer

2010-06-23 Version 0.14

  • 64-integer types are now displayed as "dlong" and "ulong" instead of "__int64" and "unsigned __int64"
  • improved support for long and ulong for DMD versions before 1.057 and 2.041
  • DMC also emits D-types for "long long" and "unsigned long long", these are translated back to the correct types if command option -C is used
  • now adding properties "has nested type" and "is nested type" to class/struct/union/enum types
  • better support for enumerators: now added as user defined types (DMD patch for issue http://d.puremagic.com/issues/show_bug.cgi?id=4372 needed)

2010-08-08 Version 0.15

  • thanks to patches by Z3N, the resulting pdb is now usable by more debuggers
  • now uses shared file access to executable
  • incomplete structs/classes are now added as user defined types to avoid confusing debugger for following symbols
  • fixed name demangling of very long names
  • added name demangling support for @safe/@trusted/@property/pure/nothrow/ref
  • base classes are added to D/cpp-interfaces to allow viewing the virtual function table pointer
  • structs, classes and interfaces now have an internal qualifier attached that allows the preview in autoexp.dat to show better info for structs and interfaces

2010-08-10 Version 0.16

  • fixed crash when working with -C (introduced in last version)

2010-09-04 Version 0.17

  • fixed crash that could occur for user-defined types longer than 90 characters

2010-10-24 Version 0.18

  • fixed error with nested types longer than 255 characters
  • more fixes for names longer than 300 characters

2010-12-10 Version 0.19

  • now converting only class pointers to references, not pointers to structs or void
  • changed default D-version to 2.043 to create correct associative array type information for recent compilers by default

2010-12-30 Version 0.20

  • fixed another issue with user defined type names longer than 300 characters
  • now corrects the debug info when dmc/optlink emits multiple struct definitions, but only one UDT record.

2010-05-08 Version 0.21

  • fixed decoding of compressed symbols
  • added command line switch -n to disable symbol demangling
  • fixed crash with more than 32767 types

2011-07-12 Version 0.22

  • added command line switch -s to specify the replacement character for '.' in symbols
  • fixed another crash where compressed symbols expand to more than 4096 characters

2012-03-14 Version 0.23

  • disabled named enumerator for D basic types to avoid debugger troubles displaying arrays
  • added command line switch -e to enable using named enumerator for D basic types
  • added DWARF support
  • added x64 support
  • tweaked visualizer for associative array element to just show key and value

2012-05-01 Version 0.24

  • supports unicode characters in file names
  • improve interpretation of DWARF location expression

2012-06-18 Version 0.25

  • new option -p allows to specify the embedded PDB reference in the binary
  • added support for VS2012

2012-11-09 Version 0.26

  • now iterating over multiple entries in the debug directory to find CV info

2013-05-11 Version 0.27

  • fixed crash when converting DWARF locations using 8 bytes or more

2013-11-16 Version 0.28

  • added searching mspdb120.dll for VS 2013
  • changed search order for mspdb*.dll: trying to load through PATH first newest VS versions preferred, then trying through installation paths for VS 2013-2005
  • dviewhelper.dll now avoids being reloaded for every expression

2014-19-02 Version 0.29

  • fix DWARF conversion for newer gcc versions (4.8.0 or even earlier)

2014-25-02 Version 0.30

  • fixed crash when converting DWARF for executables without .reloc segment