我搜索过这个问题,发现了许多口味和想法,但没有真正的解决方案。所以,穿上我的石棉套装并希望最好的,我敢再问它。
我管理的C#代码调用托管C ++代码,后者又调用非托管C ++代码。非托管C ++代码抛出异常,我希望能够通过它进行调试。但是,当我尝试(显式地,通过调用堆栈)加载符号时,我得到了可怕的“符号文件MyFile.pdb与模块不匹配”错误。
我猜这是一个返回的通用错误代码,因为这些文件来自同一个版本。使用chkmatch工具似乎确认文件确实匹配。
任何帮助非常感谢... WTS
答案 0 :(得分:1)
可能值得检查加载的dll的路径 - 你使用的是你认为的那个吗?
如果您使用的是增量版本,则可能还需要idb文件
我有一个问题,MSVC当时不想看到任何调试符号,没有解决原因,而是使用CrashFinder或windbg解决了这个问题。也许重新启动会让它再次运行。
您可能希望在构建期间使用symstore来确保更可靠地捕获所有pdb,这样您就可以跨文件的多个版本进行调试。