一般保护故障
如何检测导致GPF的进程?
How to detect the process that caused a GPF?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何检测导致GPF的进程?
How to detect the process that caused a GPF?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
我不确定我是否理解你的问题。 GPF - 是处理器发出中断的情况。
如果这种情况发生在用户模式中 - 它会被转换为 SEH 异常,而该异常又可以由进程处理。如果不处理 - 进程就会“崩溃”。意味着 - 显示一个丑陋的消息框并且进程被终止(根据设置,进程也可能被调试,生成调试转储等)
如果这种情况发生在内核模式 - 有两种可能性。如果这种情况发生在允许异常的上下文中,则会引发并处理 SEH 异常(类似于用户模式)。但是,如果未处理异常,或者发生 GPF 的上下文不允许异常 - 操作系统将关闭,显示所谓的 BSOD(蓝屏死机)。
现在关于你的问题,我看到了几种可能性:
这可以通过附加的内核调试器来发现。您还将看到导致错误的驱动程序。
这个进程将会崩溃,你一定会知道那是哪个进程。
为此,您可以使用调试器附加到进程。每当进程内部发生 SEH 异常时,操作系统就会通知调试器。
I'm not sure I understand your question. GPF - is the situation where a processor issues an interrupt.
If this happens in the user-mode - it's translated into a SEH exception, which in turn may be handled by the process. If it's not handled - the process "crashes". Means - an ugly message box is displayed and the process is terminated (depending on the settings the process may also be debugged, debug dump generated and etc.)
IF this happens in the kernel-mode - there're two possibilities. If this happened in a context of where exceptions are allowed - SEH exception is raised and handled (similarly to user-mode). If however the exception is not handled, or the context in which GPF happened doesn't allow exceptions - the OS shuts down, displaying the so-called BSOD (blue screen of death).
Now about your question, I see several possibilities:
This is possible to discover with kernel debugger attached. You'll also see the driver that caused the error.
This process will crash, and you'll definitely know which process was that.
For this you can attach to the process with a debugger. Whenever a SEH exception occurs inside a process - the debugger is notified by the OS.