根据dumpbin,VS2010 C ++不包含.pdb的路径是我编译的.dll

时间:2010-09-24 15:11:58

标签: c++ visual-studio-2010 dll pdb-files

Visual Studio按需要将项目编译为dll,但是当我用dumpbin检查这些dll时,他们的pdbs没有条目,这可能是我无法调试任何这些dll的原因我在运行时加载它们,它们的pdbs永远不会加载。如何让VS写这些路径?

Visual Studio,C ++。

编辑: C ++ / General / Debug信息格式设置为“Program Database(/ Zi)”,Linker / Debugging / Generate Debug Info为“Yes(/ DEBUG)”,我认为这是正确的。

3 个答案:

答案 0 :(得分:2)

如果dumpbin /headers在调试目录中没有显示任何条目,则可能是因为您未在编译和链接时启用调试信息生成。您应该检查 C ++ / General / Debug信息格式链接器/调试/生成调试信息选项。

如果设置了这些选项,则可以检查Visual的输出目录中的dll和pdb是否匹配。使用Windows调试工具,您可以使用命令symchk /v yourdll /s folder_containing_pdb来验证调试器引擎是否可以找到pdb。它将检查dll是否不包含调试信息,在这种情况下,您在Visual Studio中缺少选项,或者pdb文件未完成。 您还可以使用命令!sym noisy来使用Windbg。 See here for detailed instructions.

答案 1 :(得分:0)

在dll中未引用pdbs,Visual Studio会搜索它们。如果它们在同一目录中,它应该找到它们。

答案 2 :(得分:0)

您可以根据this article指示Visual Studio查找符号的位置。总结:

  

单击文件上的符号文件路径   菜单显示,设置或附加到   符号路径。

有关如何使用符号的更全面的概述是here

Output窗口中应该有关于DLL加载时发生的事情的信息。也许这不是你期望的版本?