VS 2019:仅在部分代码中调试时局部变量为空
VS 2019 : Locals empty when debugging only in part of the code
我一直在尝试在 VS 2019 中进行调试。最近,由于某种原因,当我在特定的 .cs 文件中遇到断点时,Locals window 为空。但是,在其他文件中,本地文件可用!当我在局部变量为空的文件中使用 Immediate Window 时,出现“无法计算表达式”。但是代码的其他部分中的相同命令正在运行。
上下文:
项目是一个 C# 库 (dll),它作为插件加载到另一个应用程序 (Revit)
pdb文件与dll位于同一目录
项目正在使用 Fody Weaver。但是我以前一直在使用它,并且没有遇到调试问题。
高级构建设置如下:
我使用“调试”>“附加到进程”和“自动”选项附加到进程:
我在调试模式下附加,dll 也是使用调试模式构建的。
未选中“优化代码”选项。
我尝试过的事情:
- 启用“使用托管兼容性”模式
- 启用“在模块加载时抑制 JIT 优化”
- 启用“仅我的代码”
- 正在删除断点并重新创建
- 清洁解决方案和重建
- 正在重启Visual Studio
- 以管理员身份开始 Visual Studio
- 正在更新 Visual Studio 到最新的
- 正在重启我的电脑
更新:
我尝试重构并将未显示本地文件的文件拆分为两个文件。令我惊讶的是,现在本地人在他们之前没有显示的文件中和新文件中都显示了。但是,显示的值仍然很奇怪。对象的类型显示为 float {class}
,我无法展开以查看它们的属性。请参阅下面新文件中显示的本地人的屏幕截图:
因此,就我而言,问题出在我安装的名为 Cylance 的病毒防护软件上。我将其设置更改为 Monitor 并在 VS 的 Debug 设置中取消选中“Use Managed Compatibility Mode”,并且 locals 再次按预期显示。
我一直在尝试在 VS 2019 中进行调试。最近,由于某种原因,当我在特定的 .cs 文件中遇到断点时,Locals window 为空。但是,在其他文件中,本地文件可用!当我在局部变量为空的文件中使用 Immediate Window 时,出现“无法计算表达式”。但是代码的其他部分中的相同命令正在运行。
上下文:
项目是一个 C# 库 (dll),它作为插件加载到另一个应用程序 (Revit)
pdb文件与dll位于同一目录
项目正在使用 Fody Weaver。但是我以前一直在使用它,并且没有遇到调试问题。
高级构建设置如下:
我使用“调试”>“附加到进程”和“自动”选项附加到进程:
我在调试模式下附加,dll 也是使用调试模式构建的。
未选中“优化代码”选项。
我尝试过的事情:
- 启用“使用托管兼容性”模式
- 启用“在模块加载时抑制 JIT 优化”
- 启用“仅我的代码”
- 正在删除断点并重新创建
- 清洁解决方案和重建
- 正在重启Visual Studio
- 以管理员身份开始 Visual Studio
- 正在更新 Visual Studio 到最新的
- 正在重启我的电脑
更新:
我尝试重构并将未显示本地文件的文件拆分为两个文件。令我惊讶的是,现在本地人在他们之前没有显示的文件中和新文件中都显示了。但是,显示的值仍然很奇怪。对象的类型显示为 float {class}
,我无法展开以查看它们的属性。请参阅下面新文件中显示的本地人的屏幕截图:
因此,就我而言,问题出在我安装的名为 Cylance 的病毒防护软件上。我将其设置更改为 Monitor 并在 VS 的 Debug 设置中取消选中“Use Managed Compatibility Mode”,并且 locals 再次按预期显示。