深入理解Vista:改进的故障处理(2)
我们可以在以下四张图片中看到两种实现方法的对比。这些图片显示Accvio.exe进程和错误报告进程之间的关系,Accvio.exe进程是一个故障测试程序,可以触发一个应用程序崩溃。Windows Vista中新的错误处理机制意味着应用程序不再会悄无声息地中止,而妨碍我们向微软发送错误报告,以便帮助软件开发商改进他们的产品。
Windows XP的应用程序错误处理
Windows XP的错误报告对话框
Windows Vista的应用程序错误处理
Windows Vista的错误报告对话框
盆盆评注:从图1中可以看出,Windows XP的错误报告进程dwwin是由发生错误的应用程序所启动,如果该应用程序的主线程堆栈被破坏,会导致无法弹出错误报告。而图3显示Windows Vista的错误报告进程WerFault是由svchost进程启动的(实际上是由svchost进程里的WER服务所加载),这样的相对独立机制,可以确保应用程序的错误都能被系统所捕获。
网友评论