如何在Visual Studio 2012中加载符号

joh*_*n d 17 symbols pdb-files

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

无法找到或打开PDB文件

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

Ony*_*Ony 9

添加符号位置

打开设置:工具 - >选项 - >调试 - >符号并添加.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\"
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

使调试更容易:

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

ReAttach:visualstudiogallery.msdn.microsoft.com/8cccc206-b9de-42ef-8f5a-160ad0f017ae

它会为你节省很多时间!:)