Dom*_*tal 25 .net c# debugging properties visual-studio-2012
我插入了两个临时变量并希望看到它们的值,但我不能.我可以把它放在其他地方来解决它,但我很感兴为什么这种行为存在.
public float Value
{
get
{
float result = Memory.ReadFloat(Address);
double Radian = Math.Round(result, 2); // **BREAK POINT HERE**
double Degree = Math.Round(Math.Round((double)(result * 180 / Math.PI)), 2); // **BREAK POINT HERE**
return result; // **BREAK POINT HERE**
}
}
Run Code Online (Sandbox Code Playgroud)
我打破了所有这三点,但我无法让Visual Studio 2012向我展示价值观.只有结果会显示在locals窗口中,没有名为Radian或Degree的变量.
例如,如果我为Radian变量添加一个监视器,我会收到带有红色十字图标的消息:
Radian - 当前上下文中不存在名称'Radian'
Lee*_*Lee 61
JIT编译器可能已经优化了局部变量.由于您使用的是Visual Studio,因此可以将配置切换为Debug并重建.
如果没有,您可以配置JIT编译器以禁用优化并生成跟踪信息 - 请参阅此处有关如何设置配置的信息.这应该允许您在将调试器附加到进程时查看局部变量.
小智 20
我在VS2012中遇到了另一种情况,导致变量在调试模式下"消失":
确保你没有这个:
if(false)
{
.
}
else
{
//Code here will be optimized and variables will not be available.
}
Run Code Online (Sandbox Code Playgroud)