Thread overview
VisualD: Watch symbols are not found
Apr 18, 2017
Mike B Johnson
Apr 18, 2017
Mike B Johnson
Apr 19, 2017
Rainer Schuetze
Apr 19, 2017
Rainer Schuetze
April 18, 2017
When I input the name of local systems that show up in the locals window but then enter them or something related, they are not found and gives error D0013.

These symbols show up in the locals window so I think that the watch code is not properly resolving them. I have tried to resolve them to no avail.

Some symbols do work, but some do not for some reason. It severely limits my ability to debug programs because I cannot see variables. Sometimes the locals window shows far to much stuff to quickly process what is going on. Usually it shows a lot of temp values mixed in with locals(globals are not shown ;/)

It seems that the issue occurs much more often with things like loops:

foreach(a; A)
{

   // cannot add a watch to a here, not found. Shows up in the locals as __r####.

}


seems the debugger doesn't connect the basic symbol names together like it should(some cross referencing should be done?).

Thanks.









April 18, 2017
I should also mention that it would be nice to be able to sort the names, values and types in the local and watch windows. Clicking on the column header does nothing.

I don't know if it is possible but it would also be cool to have different variables colored depending on where they come from(e.g., if they are global they are red, if from the current local scope they are green, etc).


April 19, 2017

On 18.04.2017 22:56, Mike B Johnson wrote:
> When I input the name of local systems that show up in the locals window
> but then enter them or something related, they are not found and gives
> error D0013.
>
> These symbols show up in the locals window so I think that the watch
> code is not properly resolving them. I have tried to resolve them to no
> avail.

Can you provide an example?

Please also specify which debugger you are using (mago, plain VS or with VS with mago plugin, see http://rainers.github.io/visuald/visuald/Debugging.html).

>
> Some symbols do work, but some do not for some reason. It severely
> limits my ability to debug programs because I cannot see variables.
> Sometimes the locals window shows far to much stuff to quickly process
> what is going on.

Have you tried the Auto window?

> Usually it shows a lot of temp values mixed in with
> locals(globals are not shown ;/)

The temporaries are compiler generated variables. There is currently no way to hide them, but I also considered an option for mago.

Globals need to be specified with fully qualified name (pkg.mod.var), with '.' replaced by '@' when not using mago.

>
> It seems that the issue occurs much more often with things like loops:
>
> foreach(a; A)
> {
>
>    // cannot add a watch to a here, not found. Shows up in the locals as
> __r####.
>
> }
>

foreach is often compiled to a nested function without proper debug information about the context. You need to walk up the stack to see the variables there. Unfortunately, if the variables are captured in a closure, the debug information is still wrong.
April 19, 2017

On 18.04.2017 22:58, Mike B Johnson wrote:
> I should also mention that it would be nice to be able to sort the
> names, values and types in the local and watch windows. Clicking on the
> column header does nothing.
>
> I don't know if it is possible but it would also be cool to have
> different variables colored depending on where they come from(e.g., if
> they are global they are red, if from the current local scope they are
> green, etc).
>
>

I don't think the debugger or Visual D have access to that functionality. Sorting locals could be implemented by a global option, though.