一般性保护错误

时间:2010-05-11 05:40:24

标签: windows bsod

如何检测导致GPF的过程?

1 个答案:

答案 0 :(得分:1)

我不确定我理解你的问题。 GPF - 处理器发出中断的情况。

如果在用户模式中发生这种情况 - 它会被转换为SEH异常,而异常又可能由进程处理。如果没有处理 - 过程“崩溃”。表示 - 显示一个丑陋的消息框,并终止该过程(取决于设置,也可以调试该过程,生成调试转储等)。

如果在内核模式中发生这种情况 - 有两种可能性。如果这发生在允许例外的上下文中 - 引发和处理SEH异常(类似于用户模式)。但是,如果未处理异常,或者GPF发生的上下文不允许例外 - 操作系统关闭,显示所谓的BSOD(蓝屏死机)。

现在关于你的问题,我看到了几种可能性:

  • 操作系统死机,您想知道哪个进程导致系统调用导致GPF处于内核模式。 这可以通过附加的内核调试器来发现。您还会看到导致错误的驱动程序。
  • GPF在进程内的用户模式下发生,并且不会被处理。 这个过程会崩溃,你肯定知道那个过程是什么。
  • GPS在流程内部发生,处理,流程继续运行。并且您希望收到有关此通知。 为此,您可以使用调试器附加到进程。每当进程内发生SEH异常时 - 操作系统会通知调试器。