与 2019 16.2.4 相比,调试期间未显示变量值

variable values not showing during debug vs 2019 16.2.4

我在为局部变量赋值后设置了一个断点。变量的名称保持灰色,当我将鼠标悬停在它上面时看不到它的值。这是工作查找,但突然停止。

如下代码所示,我设置了两个断点,一个是两个局部变量相加,一个是实例化窗体。调试器不会在第一个断点处停止,而是在第二个断点处停止。当我将鼠标悬停在任何局部变量上时,我无法识别该变量及其值。

int testVariable = 1;
int test2 = 3;
int test3 = 0;
test3 = testVariable+test2; //this is where the breakpoint is - note test3 is grayed out
MainForm main = new MainForm(); // this where the second breakpoint is which does work
main.Show();

This was working find but has suddenly stopped.

您最近对您的项目进行过任何更改吗?您的代码没有什么特别之处,我认为这是您的设置或扩展的问题。您可以尝试以下步骤来解决此问题:

  1. 您可以尝试重启VS并重建项目。

  2. 如果仍然存在,请重置所有与调试相关的选项(工具 -> 导入和导出设置 -> 重置所有设置 -> 不,只需重置...).

  3. 如果不起作用,请转至 工具 -> 选项 -> 调试 -> 常规 检查 “使用旧版 C# 和VB 表达式求值器“使用托管兼容模式”

此外,根据this document,请避免调试优化代码,您可以启用“在模块加载时抑制 JIT 优化(仅限托管)” 选项来检查如果有帮助。

我在发布模式下执行应用程序时遇到的问题,将其更改为调试解决了这个问题。