代码之家  ›  专栏  ›  技术社区  ›  Kajetan Abt

VS2010 C++不包括路径到.PDB是我根据DUPPBIN编译的DLL。

  •  0
  • Kajetan Abt  · 技术社区  · 16 年前

    Visual Studio按我的意愿将项目编译为DLL,但当我使用dumpbin检查这些DLL时,它们没有PDB的条目,这可能是我在运行时加载这些DLL而从未加载它们的PDB时无法调试这些DLL的原因。如何让vs来写这些路径?

    VisualStudio,C++。

    编辑: C++/Ung/Debug信息格式IST设置为“程序数据库(/ZI)”,链接器/调试/生成调试信息在“是(/调试)”上,我相信是正确的。

    3 回复  |  直到 14 年前
        1
  •  2
  •   plodoc    16 年前

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

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

        2
  •  0
  •   Femaref    16 年前

    DLL中没有引用PDB,它们由Visual Studio搜索。如果它们在同一个目录中,应该可以找到它们。

        3
  •  0
  •   Steve Townsend    16 年前

    您可以指导Visual Studio根据 this article . 总之:

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

    对符号如何使用的更全面的概述是 here .

    应该有信息在 Output 窗口显示加载DLL时发生的情况。也许不是你期望的版本?