如何检测导致GPF的过程?

最佳答案

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

如果这是在用户模式下发生的,则将其转换为SEH异常,该异常又可以由流程处理。如果不处理-进程“崩溃”。意思是-显示一个丑陋的消息框并终止进程(取决于设置,还可以调试进程,生成调试转储等)

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

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

  • OS死了,您想知道哪个进程进行了系统调用,从而导致了内核模式下的GPF。
    使用附加的内核调试器可以发现。您还将看到导致错误的驱动程序。
  • GPF在进程内的用户模式下发生,并且未处理。
    该过程将崩溃,您肯定会知道是哪个过程。
  • GPS发生在流程内部,经过处理,流程继续运行。您希望收到有关此事的通知。
    为此,您可以使用调试器附加到进程。每当进程内发生SEH异常时,操作系统就会通知调试器。
  • 10-08 08:52