我插入了两个临时变量,想看看它们的值,但是我不能。我可以把它放在别的地方来解决这个问题,但是我很感兴趣为什么会有这种行为。
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显示我的值。只有结果将显示在局部窗口,没有所谓的弧度或度变量。
例如,如果我为Radian变量添加一个监视,我会收到带有红十字图标的消息:
Radian -名称“Radian”在当前上下文中不存在
5条答案
按热度按时间2uluyalo1#
局部变量可能已被JIT编译器优化掉。由于您使用的是Visual Studio,因此可以将配置切换到“调试并重新生成”。
如果没有,您可以配置JIT编译器禁用优化并生成跟踪信息-参见here on how to set the configuration。这应该允许您在将调试器附加到进程时查看局部变量。
ssm49v7z2#
我在VS2012中遇到过另一个场景,它会导致变量在调试模式下“消失”:
确保你没有这个
fxnxkyjh3#
如果您尝试在发布版本(发布模式而不是调试模式)中进行调试,则会收到此错误。请将解决方案配置更改为“调试(任何CPU)”,然后您将能够在即时窗口中看到变量值。
bt1cpqcv4#
我有一个.NET标准项目,对我有效的方法是:
它已经被设置为“可移植”。将它改为“完整”可以让我再次看到监视和即时窗口中的变量。
不确定是否相关,但我最近将项目从PCL转换为.NET标准。可能有些东西在翻译中丢失了。
wgeznvg75#
我将解决方案配置更改为调试(任何CPU),但这不是问题。升级到Visual Studio 2017后,我以为我在调试,但有一个更简单(但重要的)一步。(对大多数人来说,这可能是显而易见的,但我错过了。)在“解决方案配置”设置为“调试”的地方,我还必须单击“调试”旁边的向下箭头,然后选择“配置管理器...”然后在相应的弹出窗口中,“配置”仍然设置为“发布”-我必须将其更改为“调试”并单击“关闭”按钮。从那里重新运行允许我在调试时查看所有变量。