我试图了解非托管用户模式 Windows 进程可能“崩溃”的方式(这实在是一个笼统的术语)。
以下是我目前所知道的方法:
- 未处理的结构化异常
- 默认 UnhandledExceptionFilter:pre-Vista 中的事后调试器;Vista+ 中的 WerFault
- Custom UnhandledExceptionFilter: 可以为所欲为,包括悄悄退出?
- “硬”崩溃(不确定是否有技术术语)
- 例如,在处理堆栈溢出时点击堆栈溢出保护页面:操作系统只是让进程消失得无影无踪?
- “正常”退出:
- 例如,语言提供自己的错误处理机制,使操作系统看起来像应用程序正常关闭一样致命崩溃。
这大致正确吗?用户模式 Windows 进程是否有任何其他方式死亡?