2010-07-09 30 views
2

我在这个问题上搜索过,发现了很多风味和想法,但没有真正的解决方案。所以,穿上我的石棉西装,并希望最好的,我敢再问一遍。符号文件MyFile.pdb与模块不匹配

我管理了C#代码,它调用托管C++代码,该代码又调用非托管C++代码。非托管C++代码抛出异常,我希望能够通过它进行调试。但是,当我尝试(明确地通过调用堆栈)加载符号时,我遇到了可怕的“符号文件MyFile.pdb与模块不匹配”的错误。

我猜这是一个通用的错误代码被返回,因为这些文件来自同一个版本。使用chkmatch工具似乎可以确认文件确实匹配。

任何帮助非常赞赏... WTS

+0

您可以展开(明确地通过调用堆栈)吗? – 2010-07-09 18:55:54

+0

当然 - 我的意思是右键单击调用堆栈窗口/选项卡中的DLL,然后选择Load Symbols。我浏览到包含DLL和PDB文件的目录,然后选择PDB文件。 – 2010-07-09 19:12:25

回答

1

可能是值得检查加载DLL的路径 - 使用你以为你在一个你?

如果使用的是增量构建,你可能还需要IDB文件

我有一个问题,即MSVC只是不希望看到在任何时间调试符号,不明白为什么,而是改用CrashFinder或windbg解决问题。也许重启会让它重新运行。

您可能希望在构建过程中使用symstore,以确保更加可靠地捕获所有pdbs,这样您就可以跨多个文件构建进行调试。

+0

你如何设置它以获得* .idb文件? – 2011-08-02 20:57:34