【问题标题】:.pdb files not available when debugging Visual Studio Extension调试 Visual Studio 扩展时,.pdb 文件不可用
【发布时间】:2021-07-25 08:55:10
【问题描述】:

[环境:W10 x64 Pro v. 20H2,Visual Studio Pro 2019 16.9.4]

我正在尝试调试一个开源项目,它是一个 Visual Studio 扩展 (AnkhSVN2019),并且能够启动一个 VS 扩展调试会话,其中正在执行我修改的代码。

但是,我在代码中设置的任何断点在运行时都会被禁用,当我将鼠标悬停在禁用的断点上时,我会收到消息

The breakpoint will not currently be hit. No symbols have been loaded for this document.

当我在调试会话中并打开 Modules 窗口(调试 -> Windows -> 模块)时,我看到我感兴趣的 dll 已加载并位于 @987654323 @。 (确实存在。)但该目录中没有Ankh.UI.pdb。一些希望相关的观察结果:

  • 文件Ankh.UI.pdb确实存在于项目的...\bin\Debug\目录中
  • 上述 Ankh.UI.dll 的时间戳早于我最近对该 .dll 中的文件所做的编辑
  • 环顾四周,我发现 C:\Users\conrad\AppData\Local\Microsoft\VisualStudio\16.0_b1ddb83bExp\Extensions\Phil Jollans\AnkhSVN2019\1.0.12\ 中有一个更新的 Ankh.UI.dll,但该目录中也没有 .pdb 文件(Phil Jollans 是 github 上 AnkhSVN2019 的所有者)

返回 Modules 窗口,如果我右键单击 Ankh.UI.dll 行并选择 Symbol Load Information...,将打开一个对话框,其中包含以下信息:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\Ankh.UI.pdb: Cannot find or open the PDB file.
c:\users\conrad\appdata\local\microsoft\visualstudio\16.0_b1ddb83bexp\extensions\extensions-16.0_b1ddb83b\wyo52n3q.czx\Ankh.UI.pdb: Cannot find or open the PDB file.
C:\AnkhSVN2019\src\Ankh.UI\obj\x86\Release\Ankh.UI.pdb: Cannot find or open the PDB file.
C:\Windows\Ankh.UI.pdb: Cannot find or open the PDB file.
C:\Windows\symbols\dll\Ankh.UI.pdb: Cannot find or open the PDB file.
C:\Windows\dll\Ankh.UI.pdb: Cannot find or open the PDB file.

(顺便说一句,没有C:\AnkhSVN2019\ 目录。)

我在这里错过了什么?

【问题讨论】:

    标签: c# visual-studio debugging visual-studio-debugging


    【解决方案1】:

    我已经下载了这个项目,但是如何调试这个项目呢?

    我使用以下步骤调试它,可以打断点(Ankh.UI),并且可以加载Ankh.UI pdb文件。

    1. 右键单击 Ankh.Package 项目
    2. 打开Debug页面
    3. 使用“C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe”将Start Action 更改为Start external program
    4. 在命令行参数中添加/rootsuffix Exp

    【讨论】:

      【解决方案2】:

      从扩展所有者那里获得了足够(尽管可能不是完全必要)步骤的列表,以使我的环境处于可调试扩展的状态:

      • 启动实验实例(在调试器中)
      • 从实验实例中移除 AnkhSVN(通过扩展/管理扩展)
      • 关闭实验实例
      • 从普通实例中移除 AnkhSVN
      • 关闭视觉工作室
      • 在开始菜单中,点击Reset Visual Studio 2019 Experimental Instance链接
      • 再次在 Visual Studio 中打开 AnkhSVN
      • 清洁溶液
      • 启动调试器(它将重新构建解决方案 - 不要先构建解决方案!)
      • 如果实验实例没有安装AnkhSVN,则关闭它并重新启动调试器

      这个步骤列表是 IMO 完全疯狂的,不应该是调试扩展所必需的。无法判断这是 VS 的缺点还是由于扩展架构不佳。但至少现在我可以调试它了。

      【讨论】:

        猜你喜欢
        • 2010-09-21
        • 1970-01-01
        • 1970-01-01
        • 2012-03-06
        • 1970-01-01
        • 2012-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多