2

我在这个问题上进行了搜索,发现了很多口味和想法,但没有真正的解决方案。所以,穿上我的石棉套装并希望最好,我敢再问一次。

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

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

非常感谢任何帮助... wTs

4

1 回答 1

1

可能值得检查加载的 dll 的路径 - 你使用的是你认为你在哪里的那个吗?

如果您使用增量构建,您可能还需要 idb 文件

我遇到了一个问题,MSVC 当时只是不想看到任何调试符号,没有弄清楚原因,而是使用 CrashFinder 或 windbg 解决了这个问题。也许重新启动会使它再次工作。

您可能希望在构建期间使用 symstore 以确保更可靠地捕获所有 pdb,这样您也可以跨文件的多个构建进行调试。

于 2010-07-09T19:43:43.413 回答