在调试时无法评估表达式

Tim*_*Tim 47 c# vb.net asp.net visual-studio-2013

当调试asp.net代码(针对IIS运行,并使用Visual Studio 2013)并在断点中尝试使用快速监视来评估变量时,我经常会"无法评估表达式".

从asp.net项目文件夹中删除.suo似乎解决了问题(重新加载解决方案后)

这是一个公认的错误吗?现在在Visual Studio 2013中在多台计算机上获得了很多.

Shu*_*ubh 91

我今天用VS2013面对它了.

转到工具 - >选项 - >调试 - >常规 - >滚动到"使用管理兼容模式"的底部,然后选择选项.

博客的截图(以下网址): 在此输入图像描述 重启你的调试.希望它能帮助别人.

是什么帮助我在下面!

  • 我这样做了,这没有什么区别,我多年来一直在调试 C# 和 C++,在过去的几天里,无论我使用 VS2015 选择什么选项,我都无法查看我的 C++ 成员变量。 (2认同)

Jar*_*Par 7

C#调试引擎在很大程度上依赖于CLR调试器来评估表达式.该消息表明CLR处于无法执行简单评估的状态,其原因可能包括以下内容:

  • 局部变量被优化掉了
  • 线程在GC不安全点停止
  • 前一个函数调用导致调试器进入错误状态,因此无法进行进一步的评估

  • 这个消息是我在vs2013中注意到的RTM不记得在vs2013RC(和beta),2012或2010中注意到它(在调试时). (3认同)

Sim*_*ver 6

其中一些选项会随着时间的推移而改变——其他答案中评分最高的解决方案似乎不再存在——搜索选项对话框会有所帮助。

现在对于一个 ASPNET Core 项目,我发现了这个,并且启用它似乎有帮助:

在此处输入图片说明

抑制模块加载时的 JIT 优化(仅限托管):在加载模块时禁用托管代码的 JIT 优化,并在附加调试器的同时编译 JIT。禁用优化可能会使调试某些问题更容易,但会牺牲性能。如果您使用 Just My Code,则取消 JIT 优化可能会导致非用户代码显示为用户代码(“我的代码”)。有关详细信息,请参阅 JIT 优化和调试。

如果它似乎没有帮助,我建议再次关闭它。