【问题标题】:Updating PDB files without rebuilding更新 PDB 文件而不重建
【发布时间】:2010-11-09 06:27:57
【问题描述】:

有没有办法用新的源位置更新 PDB 文件?我有一个项目,它链接到一些在另一台机器上构建的库,并使用 PDB 文件进行调试构建。我无法在库中编译的文件中放置断点。这些库需要 4 个多小时才能构建,所以我不想在我的机器上构建它们。有没有办法让编译器使用新的源路径。我正在使用 VS 2005 pro c++。

谢谢 阿米特

【问题讨论】:

    标签: debugging pdb-files


    【解决方案1】:

    与其修改.pdb 文件以适应您拥有源代码的位置,不如让调试器看到新的源代码路径。查看here 以获取有关在 Visual Studio 中执行此操作的说明,并查看here 了解有关在 WinDbg 中执行此操作的说明。

    另一个 StackOverflow 问题:Best Visual Studio 2008 Debugging Tutorial

    【讨论】:

    • 您好贾里德,感谢您的回复。我尝试了您的解决方案,但仍然无法添加断点。你能指点我一些文章或资源,在那里我可以获得调试器的详细工作,以及它如何使用 pdb 文件。你有什么其他的建议 ?再次感谢你的帮助。干杯阿米特
    • 我已经更新了我的答案,其中包含指向另一个 StackOverflow 问题的链接,该问题有很多指向教程的链接。我已经看到你正在经历的事情,但不记得我做了什么来“说服”它来源在哪里。一种策略可能是在函数上设置断点,您可以通过名称指定断点,而不是单击源代码。
    【解决方案2】:

    调试器是否从错误的位置拾取.pdb 文件?您是否有与您正在执行的二进制文件(即.exe.dll)匹配的.pdb 文件的副本?请记住,.pdb 文件只有在与您正在执行的确切 二进制文件同时创建时才能使用。

    尝试以下方法:

    1. 重命名调试器想要加载的(陈旧的).pdb 文件,这样调试器将不再尝试获取它。

    2. 转到Tools->Options->Debugging->Symbols 并将符号文件 (.pdb) 位置添加到列表中。

    3. 如果已附加调试器,请右键单击“模块”列表中的模块,然后单击“加载符号”。这将从您输入的路径重新加载符号。

    另外,如果您知道代码完全相同,但您的 .pdb 文件与您使用的二进制文件不匹配,因为它们是在不同的构建期间创建的,请尝试取消选中以下复选框:

    Tools->Options->Debugging->Require source files to exactly match the original version

    【讨论】:

      猜你喜欢
      • 2015-02-03
      • 1970-01-01
      • 2014-08-19
      • 2014-04-26
      • 2013-05-05
      • 2017-09-24
      • 2012-01-15
      • 1970-01-01
      • 2021-09-28
      相关资源
      最近更新 更多