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

Rainer Schuetze via Digitalmars-d-debugger digitalmars-d-debugger at puremagic.com
Thu Feb 18 15:01:24 PST 2016



On 18.02.2016 01:36, Lewis wrote:
> 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!

cv2pdb has not been updated to the new AA implementation in dmd 2.068 
(http://dlang.org/changelog/2.068.0.html#aa-open-addressing) yet. That's 
why the type information generated by cv2pdb does not fit and 
autoexp.dat cannot extract the info.

IIRC mago has been updated, so you might want to use this debugger 
engine instead.


More information about the Digitalmars-d-debugger mailing list