3

如何检测导致 GPF 的进程?

4

1 回答 1

1

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

如果这发生在用户模式下——它会被转换为一个 SEH 异常,而这又可能由进程处理。如果不处理 - 过程“崩溃”。意味着 - 显示一个丑陋的消息框并终止进程(根据设置也可能调试进程,生成调试转储等)

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

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

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