调试Windbg上的MIL故障

时间:2014-11-12 08:27:39

标签: windows debugging windbg

最近开始使用Windbg,因为我听说它是​​一个很好的调试工具。

网上有很多关于如何使用windbg以及可用的不同扩展的帮助。在我学习期间,当我运行一些特定的工作负载时,我经常在Windbg上遇到以下故障。

失败: MIL FAILURE:调用者中出现意外的HRESULT 0x8000ffff:CDwmAppHost :: OnUnhandledException

我尝试从Google和MSDN在线寻求帮助。也许,我错过了一些东西,因此无法得到任何帮助。

所以,请有人帮助我

- >了解此错误消息的含义?

- >我该如何调试?是否有可用于调试的扩展或其他工具?

P.S:英语不是我的母语,所以如果有任何语法错误或拼写错误,请道歉。

2 个答案:

答案 0 :(得分:0)

- >了解此错误消息的含义?

我不认为此消息与WINDBG有关。这是从您正在运行的代码中吐出的。基本上在调试器下运行时 - 如果您编写代码,则会调出任何将在WINDBG中显示的调试消息。

因此,要详细了解此错误消息的含义,请在代码中搜索显示的文本。

- >我该如何调试?是否有可用于调试的扩展或其他工具?

就像我上面说的那样,从代码中的文本搜索开始,看看这条消息的来源 - 这将是你的起点!

快乐调试:)

答案 1 :(得分:0)

该消息看起来像是调试消息,而不是例外。程序员可以使用OutputDebugString() method (MSDN)发送调试消息。

要检查是否真的如此,您可以使用SysInternals DebugView。如果消息在不使用WinDbg时显示在那里,那么它就是真的。

由于调试消息的文本由程序员指定,因此文本可能或多或少有意义。它也可以是程序使用的库(DLL)的消息。

如果要在打印消息时查看callstack,可以发出命令

sxe out
无论何时写入调试输出,都应该停止WinDbg。我不太确定那时有什么可能有趣,这里有一些尝试:

k; *** Callstack
!gle; *** Get last error
g; *** Go (wait for next debug output)