【问题标题】:VS 2019 : Locals empty when debugging only in part of the codeVS 2019:仅在部分代码中调试时局部变量为空
【发布时间】:2021-10-12 00:48:28
【问题描述】:

我正在尝试像往常一样在 VS 2019 中进行调试。最近,由于某种原因,当我在特定 .cs 文件中遇到断点时,Locals 窗口为空。但是,在其他文件中,本地人是可用的!当我在本地为空的文件中使用即时窗口时,我得到“无法评估表达式”。但代码其他部分的相同命令正在运行。

上下文:

  • Project 是一个 C# 库 (dll),它作为插件加载到另一个应用程序 (Revit) 中

  • pdb文件与dll位于同一目录

  • 项目正在使用 Fody Weaver。但是我之前一直在使用它,并且我没有遇到过调试问题。

  • 高级构建设置如下:

  • 我使用 Debug > Attach to Process 和 Automatic 选项附加到进程:

  • 我在调试模式下附加,dll也是使用调试模式构建的。

  • “优化代码”选项未选中。

  • 我尝试过的事情:

    • 启用“使用托管兼容性”模式
    • 启用“抑制模块加载时的 JIT 优化”
    • 启用“仅我的代码”
    • 删除断点并再次创建断点
    • 清理解决方案和重建
    • 重新启动 Visual Studio
    • 以管理员身份启动 Visual Studio
    • 将 Visual Studio 更新到最新版本
    • 重新启动我的电脑

更新:

我尝试重构并将本地未显示的文件拆分为两个文件。令我惊讶的是,现在本地人在他们之前没有显示的文件和新文件中都显示了。但是,显示的值仍然很奇怪。对象的类型显示为float {class},我无法展开查看它们的属性。请参阅下面新文件中显示的本地人的屏幕截图:

【问题讨论】:

  • 如果你在代码的其他地方有Locals可用的地方设置断点,这次Locals还能用吗?
  • 我不确定我是否理解您的问题,但是当我遇到断点时,Locals 会显示在某些文件中,但不会出现在其他文件中。

标签: visual-studio-2019 visual-studio-debugging


【解决方案1】:

所以就我而言,问题是我安装了一个名为 Cylance 的病毒防护软件。我将其设置更改为 Monitor 并在 VS 的 Debug 设置中,取消选中“使用托管兼容模式”,并且本地都再次按预期显示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-02
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多