一年多以前,我已经使用 WinDbg 和 DebugDiag 来查找我们在 Java 中使用的 JNI 本机 DLL 中的内存泄漏。现在我正在寻找线程句柄泄漏。我使用 Process Explorer 创建了一个内存转储,并尝试在 DebugDiag 中对其进行分析,但我得到的只是脚本错误:
我也尝试过 WinDbg,但它不再能够附加到进程。我总是收到错误消息“dbghelp.dll 的版本与调试器不匹配”:( “Unbekannter Fehler”的意思是“未知错误”)
我卸载了 DebugDiag 和 Windows SDK,然后下载了最新版本并安装了 Windows SDK 8 和 DebugDiag 1.2 (x86)。问题保持不变。即使将 Windows SDK 替换为 7.1 版(Windows 7 的最新 SDK),也没有任何变化。
我正在使用一台装有 Windows 7(32 位)的机器。
我假设 DebugDiag 中的问题与 WinDbg 中的问题具有相同的原因。但我不明白版本不匹配是什么意思(谷歌搜索也没有帮助):
- WinDbg:6.12.0002.633
- 数据库:6.12.0002.633
- 数据库帮助:6.12.0002.633
我怎样才能让 WinDbg(并希望 DebugDiag)再次工作?