Thread overview
VD Debugging static variables and such symbols missing
Sep 16, 2015
Prudence
Sep 16, 2015
Prudence
Sep 16, 2015
Rainer Schuetze
Sep 16, 2015
Rainer Schuetze
Sep 17, 2015
Rainer Schuetze
September 16, 2015
Can't add watches to basic stuff. VS shows them missing:

public class X
{
	public static int[] Y;
}

Can't add a watch to X or Y even though, at the very least, should should be able to get Y.

I should expect a watch on a class to show it's static members.

My guess is that this is just oversight. It makes it very difficult to debug in some cases.
September 16, 2015
On Wednesday, 16 September 2015 at 01:18:34 UTC, Prudence wrote:
> Can't add watches to basic stuff. VS shows them missing:
>
> public class X
> {
> 	public static int[] Y;
> }
>
> Can't add a watch to X or Y even though, at the very least, should should be able to get Y.
>
> I should expect a watch on a class to show it's static members.
>
> My guess is that this is just oversight. It makes it very difficult to debug in some cases.

Also, it would be nice if we can expand nested arrays. Currently the watch of an array/aa will just expand a generic string [length, ptr] but can't be expanded any further. This requires us to have to add another watch that lets us go further down the tree.

We should be able to simply expand any depth of a multi nested array as we want(until we run out of arrays).


September 16, 2015

On 16.09.2015 03:18, Prudence wrote:
> Can't add watches to basic stuff. VS shows them missing:
>
> public class X
> {
>      public static int[] Y;
> }
>
> Can't add a watch to X or Y even though, at the very least, should
> should be able to get Y.
>
> I should expect a watch on a class to show it's static members.
>
> My guess is that this is just oversight. It makes it very difficult to
> debug in some cases.

When using the native VS debugger, we are bound to what is possible by simulating C/C++. The mangling is so different that the VS debugger cannot find the respective symbols.

When speaking of mago, the static members are listed as members of an instance, but cannot be watched in an expression as X.Y (I guess that's an oversight).

I've never seen watching the static members of a class by just entering the type in C++. Is this how it works in C#?
September 16, 2015

On 16.09.2015 03:22, Prudence wrote:
>
> Also, it would be nice if we can expand nested arrays. Currently the
> watch of an array/aa will just expand a generic string [length, ptr] but
> can't be expanded any further. This requires us to have to add another
> watch that lets us go further down the tree.
>
> We should be able to simply expand any depth of a multi nested array as
> we want(until we run out of arrays).
>

Inspecting arrays works with the mago debug engine.

The default VS debug engine uses a visualization description language that just doesn't work with D type syntax.

You can switch the VS debug engine back to an older version by enabling "native edit and continue" in the global debugging options. This debug engine supports visualization macros in autoexp.dat. Visual D adds display macros for strings and arrays into this file.
September 17, 2015

On 16.09.2015 23:26, Rainer Schuetze wrote:
> When speaking of mago, the static members are listed as members of an
> instance, but cannot be watched in an expression as X.Y (I guess that's
> an oversight).

On second thought, wathing static members does work, but you have to specify the fully qualified name including the modulename. With the VS debug engine using the conversion tool cv2pdb, replace '.' with '@'.