【问题标题】:windbg and VS can't find my pdb filewindbg 和 VS 找不到我的 pdb 文件
【发布时间】:2013-10-22 04:16:47
【问题描述】:

我有一个使用 SCons 和 MS VS 2013 (express) 编译器(从命令行编译)构建的项目。

它可以编译并运行,但是它会定期崩溃,所以我想调试它。

我添加了以下标志:

/Zi    # Debug symbols
/DEBUG # Debug symbols
/FS    # Concurrent debug database file access

构建后,我看到生成了一个名为 vc120.pdbpdb 文件。我的可执行文件位于build 文件夹中,pdb 文件位于项目主目录中。

但是,当我尝试通过 VS2013 或 WinDbg 附加我的可执行文件以进行调试时,我总是收到无法找到调试符号的错误。

我在 VS2013 和 WinDbg 中都将“路径”添加到 pdb 文件中,但我得到了相同的结果。我还尝试将pdb 文件复制到build 目录中(使其在我的可执行文件旁边),但没有骰子。我什至更改了pdb 文件的名称以匹配我的可执行文件的名称,但这也不起作用。

这里有什么我遗漏的吗?

【问题讨论】:

  • vc120.pdb 看起来不像您的程序 pdb 文件。它应该是 program_name.pdb。
  • 我认为您应该更详细地描述您的项目设置。另外:有一个链接器选项指定输出 PDB 文件的名称和路径 - 检查。
  • @AlexFarber - 在 Visual Studio 中生成的默认 PDB 文件一般为 vc<tools version>.pdb。我总是将其重命名为$(ProjectName).pdb,因为它可以减少出现此类错误的可能性。
  • 要获取有关问题的更多信息,您可以尝试使用 windbg 中的 !sym noisy 选项,如下所述:stackoverflow.com/questions/2002285/…
  • @the_mandrill:Visual Studio 生成$(ProjectName).pdbvc<tools version>.pdb。如果没有生成$(ProjectName).pdb,说明项目设置有问题。

标签: c++ visual-studio debugging


【解决方案1】:

感谢上面的 cmets,我发现问题是错误配置的 SCons 文件。

我添加了/DEBUG 作为链接器标志,而不是编译器标志,并且它起作用了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多