每个Windows系统的用户,一定对于某些程序崩溃之后出现的“错误报告工具”不陌生。这个工具号称能够联网帮你寻找解决方案。不过,大多数情况下,用户也不会对这个“错误报告工具”抱有什么期待,往往发生过一次的问题会在往后很长一段时间会重复发生。
那么,这个“错误报告工具”是真的有用吗?还是只是一种类似安慰剂的效果,微软只是想让你感觉安心而已?针对这个问题,有网友在国外的Quora上面提问,而微软的Windows Update Agent软件开发团队的Mark Phaedrus,回答了这个问题。
这位网友的问题问的很直接:当应用程序宕掉后,有时会跳出一个窗口表示“Windows正在连接帮你检查这个程序的解决方案….”,这个时候它是真的有在做事吗?如果是的话,为什么我从来没听说过他真的有帮我们解决过问题?
Mark Phaedrus则最近回答了这个问题。他表示这个叫做“Windows Error Reporting”系统的机制原理流程简单解释如下:
步骤1:应用程序宕掉
步骤2:Windows错误检查机制启动,首先会尝试去获取程序宕掉的当下,正在做什么工作的关键信息
步骤3:通过上面获取的信息,来为这个宕机信息创建一个“Bucket Signature”,这是用来识别宕机崩溃的一个简单方法。因为尽管开发者无法通过一个单一的宕机事件的“Bucket Signature”去了解这次的宕机原因是什么,但是如果有两种不同的宕机事件,有相同的“Bucket Signature”信息的话,那么就可以通过这种方式来判断宕机的原因。
步骤4:如果用户在系统设置中设置允许上传的话,“Windows Error Reporting”系统会将这次的“Bucket Signature”发送给微软。
所以我们可以知道,当应用程序宕机之后,你看到这个“Windows正在连接帮你检查这个程序的解决方案….”窗口跳出,实际上表示的就是系统正在抓取这个应用程序宕机时的关键信息,然后为这个宕机关键信息创建“Bucket Signature”,并且把这个信息上传到微软。
而Mark Phaedrus解释,随着将“Bucket Signature”上传到微软之后,依照不同的情况,主要会有三种结果:
(1)微软未能找到与你相同的“Bucket Signature”:这时服务器那边会仅仅记录你上传的这个宕机的的“Bucket Signature”,并不会反馈给你任何后续的信息。
(2)服务器发现他们先前已经有大量相同的“Bucket Signature”,但还没有解法:此时微软会将相关的信息指派给开发团队去进行分析,但他们可能需要更多进一步的信息,才能找到原因完成修复。
(3)已经有现成的解法,有相对问题的修复方式可以提供:服务器这时就会向用户的计算机回传通知,有时会附有相关的连接,告诉你“你可以怎么怎么做来解决该问题”。
因此,从上面的流程可以知道,不同的状况下会有不同的处理模式。因此,如果你没有收到回应,那就表示你的问题可以比较罕见,或是还在等待解决之中。
不过,就算你是状况三,有现成的解法你就真的能够解决你目前的问题吗?其实恐怕也未必。依照小编自己的经验,有时微软回传提供的解法,有时也不见得就百分百真的有用。甚至有时可能就是硬件太过老旧,新的系统(或旧的系统)不支持。