【问题标题】:Can't load debug symbols VS2017 - Unity .NET 4.X无法加载调试符号 VS2017 - Unity .NET 4.X
【发布时间】:2019-08-06 04:17:11
【问题描述】:

我正在使用我在 Unity 2018.4.2 Windows 项目中构建的 .NET 4.7.1 库并尝试使用加载的符号进行调试。无论我尝试什么,在 Visual Studio 2017 (15.9.12) 中调试时,我都无法为库加载符号。在模块窗口中我的 DLL 旁边出现以下内容:

符号状态:未加载

这是我尝试过的:

  1. 将库构建为 Debug
  2. 绝对确保当前 PDB 与当前 DLL 匹配
  3. 模块>符号设置>将 PDB 目录添加到符号文件位置
  4. 将 PDB 文件复制到 DLL 旁边的项目中
  5. 脚本运行时 4.X,API 兼容。 4.X 在 Unity 中
  6. 调试独立构建和编辑器
  7. 使用 ILSpy 打开库,调试符号正确加载
  8. 在 VS 模块窗口中右键单击 DLL 并单击“符号加载信息” - 什么都没有发生
  9. 在 VS 模块窗口中右键单击 DLL 并单击“加载符号”-

点击Load Symbols时出现如下->

但符号状态仍然是“未加载”

【问题讨论】:

  • 使用模块工具窗口 dbl 检查实际加载 DLL 的路径,在大多数情况下,dll 和 pdb 并排放置,VS 调试器拒绝加载 PDB ,您很可能是从其他路径加载 DLL。因此加载一个不匹配的。当链接器创建二进制文件和 pdb 时,它会生成一个 guid 来标记两者。 VS 调试器检查二进制文件中的 guid 以及它尝试加载的任何 pdb。如果它们不匹配,则不会加载。
  • 在编辑器模式下,模块 DLL 路径符合预期。构建当然会将这些文件移动到构建目录。如果配置(在播放器设置中),PDB 文件也将被复制(在 DLL 的新路径旁边)。
  • 我已在此处将其记录为 Microsoft 的错误:developercommunity.visualstudio.com/content/problem/678520/…
  • 我在2020年仍然遇到同样的问题。您解决了这个问题还是放弃了所有希望?
  • 我放弃了,很遗憾:(

标签: .net visual-studio unity3d debugging pdb-files


【解决方案1】:

我也在苦苦挣扎后想通了。

我相信问题源于我在 Unity 之前安装 Visual Studio。

为我解决的问题是:

在 Unity -> 编辑 -> 首选项 -> 外部工具 -> (将外部脚本编辑器更改为您想要的并确保它是正确的 IE:我将我的设置为 Visual Studio 2019,但它需要 Visual Studio 2019(企业版) )

尽管 打开了相同的 Visual Studio 实例,但它看起来像是 Unity 方面的某些东西导致了问题。

这为我解决了这个问题,我希望它对你也有帮助。

【讨论】:

    【解决方案2】:

    我从这篇文章中找到了解决方案:https://forum.unity.com/threads/problems-debugging-my-plugin-dlls-in-visual-studio.506577/

    您的项目属性窗口->构建->高级->调试信息选择便携

    重建并完成!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-08
      • 2011-09-16
      • 2014-02-05
      相关资源
      最近更新 更多