此模块的调试信息中缺少源信息 - PDB已成功加载

时间:2016-09-27 15:08:22

标签: visual-studio debugging pdb-files

Visual Studio加载了正确的PDB文件,但找不到解决方案中任何内容的源信息。

我尝试过的事情:

  • 清理,重启,重新生成项目(CMake),重建
  • 检查“模块”窗口以确保PDB已加载(确实如此)
  • 在解决方案属性
  • 下与“调试源文件”设置混乱
  • 使用symchk检查PDB文件(它表示PDB与EXE匹配,并且它具有完整的符号信息,即它没有被剥离)
  • 从Microsoft下载系统lib符号,因为为什么不

是否有一些设置可以生成没有源信息的PDB?或者它是否可以将不良路径引入PDB?我尝试了通过PDB,虽然看起来有所有符号,但我找不到任何源文件路径。

更多信息:这是一个64位的C ++项目。一切都是静态链接的,包括运行时。

3 个答案:

答案 0 :(得分:7)

该项目缺少/Zi parameter。显然,这仍然会导致编译器生成一个可以成功加载的PDB文件,它只是没有任何有用的符号。不知道为什么。

答案 1 :(得分:1)

更多具体案例的答案,并设置了 / ZI 选项: 此处讨论的变量是 HGDIOBJ 变量,它是从SelectObject返回的变量。 “监视”窗口中的“类型”为 void * 。 动作是“在值更改时中断”,然后继续进行操作,VS窗口代码图形会弹回到主 WndPRoc 的开头,并带有:

当0xbd1676ecb8(原始表达式:hMyObj)改变时(8 个字节)在进程“ MyProg.exe”中

之后,显示“源不可用”对话框。

那该怎么办?如果此计算机上的VS2019安装存在问题,则它们仅适用于此特定变量类型,因此决定不对该类型使用“值更改时中断”。

答案 2 :(得分:-2)

在visual studio的底部栏中,单击“应用程序输出”并解决生成的异常中的错误。