我插入了两个临时变量并希望看到它们的值,但我不能。我可以把它放在其他地方来解决它,但我很感兴为什么这种行为存在。
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**
}
}
我打破了所有这三点,但我无法让Visual Studio 2012向我展示价值观。只有结果会显示在locals窗口中,没有名为Radian或Degree的变量。
例如,如果我为Radian变量添加一个监视器,我会收到带有红色十字图标的消息:
Radian - 当前上下文中不存在名称'Radian'
JIT编译器可能已经优化了局部变量。由于您使用的是Visual Studio,因此可以将配置切换为Debug并重建。
如果没有,您可以配置JIT编译器以禁用优化并生成跟踪信息 - 请参阅here on how to set the configuration。这应该允许您在将调试器附加到进程时查看局部变量。
我在VS2012中遇到了另一种情况,导致变量在调试模式下“消失”:
确保你没有这个:
if(false)
{
.
}
else
{
//Code here will be optimized and variables will not be available.
}
如果您尝试在发布版本(发布模式而不是调试模式)中进行调试,则会出现此错误。将您的解决方案配置更改为Debug(任何CPU),您将能够在即时窗口中看到变量值。
我将我的解决方案配置更改为调试(任何CPU),但这不是问题。升级到Visual Studio 2017后,我以为我在调试中,但还有一个更简单(但很重要)的步骤。 (这对大多数人来说可能是显而易见的,但我错过了。)在“解决方案配置”设置为“调试”的情况下,我必须单击“调试”旁边的向下箭头并选择“配置管理器...”,然后在相应的弹出窗口“配置”仍设置为“发布” - 我必须将其更改为“调试”并单击“关闭”按钮。从那里重新运行允许我在调试时查看所有变量。