2

我试图了解非托管用户模式 ​​Windows 进程可能“崩溃”的方式(这实在是一个笼统的术语)。

以下是我目前所知道的方法:

  • 未处理的结构化异常
    • 默认 UnhandledExceptionFilter:pre-Vista 中的事后调试器;Vista+ 中的 WerFault
    • Custom UnhandledExceptionFilter: 可以为所欲为,包括悄悄退出?
  • “硬”崩溃(不确定是否有技术术语)
    • 例如,在处理堆栈溢出时点击堆栈溢出保护页面:操作系统只是让进程消失得无影无踪?
  • “正常”退出:
    • 例如,语言提供自己的错误处理机制,使操作系统看起来像应用程序正常关闭一样致命崩溃。

这大致正确吗?用户模式 ​​Windows 进程是否有任何其他方式死亡?

4

1 回答 1

2
  • 未处理的异常——这通常是人们所说的“崩溃”
  • 堆栈损坏的异常 - 如果堆栈损坏并且无法遍历异常链,则该进程将被静默终止。
  • 显式终止
  • 附加调试器并退出调试器而不分离
  • 如果您杀死相应的 conhost.exe 进程,控制台应用程序将终止
于 2011-01-28T22:35:12.480 回答