VisualD/cv2pdb doesn't display AA's properly in the watch window.

Lewis via Digitalmars-d-debugger digitalmars-d-debugger at puremagic.com
Wed Feb 17 16:36:44 PST 2016


Test code (in a newly created project):


import std.stdio;

int main(string[] argv)
{
     writeln("Hello Blah!");

     string[string] testAA = null;
     testAA["test1"] = "Hello";
     testAA["test2"] = "Goodbye";
     testAA["blah"] = "string";
     testAA["bloop"] = "another string";
     testAA["words"] = "test string";

     int[] testArray = null;
     testArray ~= 3;
     testArray ~= 10;
     testArray ~= 11;
     testArray ~= -2;
     testArray ~= 14;

     readln();  // Breakpoint on this line
     return 0;
}


When I check the watch window, I see the following: 
http://imgur.com/mxOxitP

I'm using DMD 2.069.0. The project is set to use the VS debugger 
and cv2pdb. I'm using VS2015, with native compatibility and edit 
and continue enabled: http://imgur.com/6mBDtN4

The debugger displays the dynamic array just fine. It correctly 
identifies the AA as an aa2, complete with types, and knows its 
size. It just doesn't display its contents correctly. I've tried 
reinstalling VisualD with no luck. I've checked the autoexp.dat 
and the VisualD entries are there as expected. I tried mucking 
with autoexp.dat a bit to see if I could make it work myself, but 
to no avail, although that tells me VS is indeed using 
autoexp.dat as I'd expect.

Any ideas what's going on? My suspicion is that something in D's 
representation of AAs changes slightly, and now the autoexp.dat 
just needs a tweak, but I don't know nearly enough to know what 
to fix myself.

Thanks in advance!


More information about the Digitalmars-d-debugger mailing list