调试 Visual Studio 扩展时,.pdb 文件不可用
Posted
技术标签:
【中文标题】调试 Visual Studio 扩展时,.pdb 文件不可用【英文标题】:.pdb files not available when debugging Visual Studio Extension 【发布时间】: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\
目录。)
我在这里错过了什么?
【问题讨论】:
【参考方案1】:我已经下载了这个项目,但是如何调试这个项目呢?
我使用以下步骤调试它,可以打断点(Ankh.UI),并且可以加载Ankh.UI pdb文件。
-
右键单击 Ankh.Package 项目
打开
Debug
页面
使用“C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe”将Start Action
更改为Start external program
在命令行参数中添加/rootsuffix Exp
【讨论】:
【参考方案2】:从扩展所有者那里获得了足够(尽管可能不是完全必要)步骤的列表,以使我的环境处于可调试扩展的状态:
启动实验实例(在调试器中) 从实验实例中移除 AnkhSVN(通过扩展/管理扩展) 关闭实验实例 从普通实例中移除 AnkhSVN 关闭视觉工作室 在开始菜单中,点击Reset Visual Studio 2019 Experimental Instance链接 再次在 Visual Studio 中打开 AnkhSVN 清洁溶液 启动调试器(它将重新构建解决方案 - 不要先构建解决方案!) 如果实验实例没有安装AnkhSVN,则关闭它并重新启动调试器这个步骤列表是 IMO 完全疯狂的,不应该是调试扩展所必需的。无法判断这是 VS 的缺点还是由于扩展架构不佳。但至少现在我可以调试它了。
【讨论】:
以上是关于调试 Visual Studio 扩展时,.pdb 文件不可用的主要内容,如果未能解决你的问题,请参考以下文章
Microsoft Visual Studio PDB文件相关事宜
在 Visual Studio 10 中带有库的 PDB 文件
OpenCV 3 Visual Studio 2017 调试,调用堆栈没有 .pdb 文件