20

当我调试我的应用程序时,我会看到以下消息:

找不到或打开 PDB 文件

我似乎记得在调试应用程序时能够指定 PDB 文件的位置。我怎样才能做到这一点?我正在使用 Visual Studio 2012。

4

1 回答 1

15

添加符号位置

打开设置:工具->选项->调试->符号并添加您的.PDB文件所在的目录。

此菜单所在的 Visual Studio 界面的屏幕截图

您可以为每个项目添加自定义路径,也可以编辑公共路径,Visual Studio 将在其中保存所有 .pdb 缓存。

制作后期脚本

我在每个项目中进行了编译后事件,将所有 .pdb 复制到一个文件夹中,这样我就可以将所有内容都放在一个地方。但是您可以单独存储它,我发现这不太方便,因为它需要每次编辑位置列表。

将 .pdb 和 .dll 复制到符号缓存位置的调试后脚本示例:

xcopy /Y /R "$(TargetDir)$(ProjectName).pdb" "D:\VS_CACHE\"
xcopy /Y /R "$(TargetDir)$(ProjectName).dll" "D:\VS_CACHE\"

如果找不到符号则解决问题

当您处于调试模式时,由于某种原因找不到符号,可能是由于多种原因:

  1. 您在 Symbols 缓存中有 .pdb,但它已经过时了(如果在这种情况下,您可以在代码中放置断点并将其悬停)
  2. 您有多个 .dll 使用这部分代码(如果是这种情况,您可以在代码中放置断点并将其悬停)
  3. 未加载符号,在这种情况下,您可以通过以下方式检查它:Debug-> Windows -> Modules并尝试加载所需的模块。

Visual Studio 界面模块的屏幕截图 -> 加载符号

使调试更容易:

要将 VS 调试器重新附加到正在运行的应用程序,我建议使用这个免费的 Visual Studio 插件(支持 VS 2015):

重新附加:visualstudiogallery.msdn.microsoft.com/8cccc206-b9de-42ef-8f5a-160ad0f017ae

它将为您节省大量时间!:)

于 2016-05-22T20:52:18.120 回答