非托管 Windows 进程崩溃的方式有哪些?
我试图了解非托管用户模式 Windows 进程可能“崩溃”的方式(这实际上是一个包罗万象的术语)。
以下是迄今为止我所知道的方法:
- 未处理的结构化异常
- 默认 UnhandledExceptionFilter:Vista 之前的事后调试器; Vista+ 中的 WerFault
- 自定义 UnhandledExceptionFilter:可以做任何它喜欢做的事,包括悄悄退出?
- “硬”崩溃(不确定是否有一个技术术语)
- 例如,在处理堆栈溢出时命中堆栈溢出防护页面:操作系统只是让进程消失得无影无踪?
- “正常”退出:
- 例如,语言提供了自己的错误处理机制,使操作系统看起来像应用程序正常关闭一样发生致命崩溃。
这大致正确吗?还有其他方法可以让用户模式 Windows 进程终止吗?
I am trying to understand the ways in which an unmanaged user-mode Windows process can "crash" (which is really too much of a catch-all term).
Here are the ways I know of so far:
- Unhandled Structured Exception
- Default UnhandledExceptionFilter: postmortem debugger in pre-Vista; WerFault in Vista+
- Custom UnhandledExceptionFilter: may do whatever it likes, including exiting quietly?
- "Hard" crash (not sure if there's a technical term for this)
- E.g. hitting the stack overflow guard page while handling a stack overflow: the OS simply makes the process disappear without a trace?
- "Normal" exit:
- E.g. where the language provides its own error handling mechanism that makes a fatal crash look to the OS like the application has shut down normally.
Is this roughly right? Are there any other ways for a user-mode Windows process to die?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)