在空闲时间,我正在开发一个基于 Web 的小型系统,该系统收集从 Delphi Windows 应用程序发送的崩溃报告(但不包括其他非崩溃错误报告)。
对于故障排除,用户希望拥有数据挖掘功能来查找硬件或操作系统版本与特定错误和/或崩溃之间的关系。
作为一个例子,这应该如何工作:
- 对于每次崩溃,数据库中都有一份报告,其中包含崩溃时堆栈跟踪(调用堆栈)的指纹/哈希码,以识别重复项
- 该算法检查错误报告的所有副本是否还具有其他一些共同属性,例如缺少操作系统的服务包
- 分析结果列出了错误报告的所有共同属性
假设这些自动错误报告包含所有关键信息,例如当前正在运行的所有进程的名称、文件名、加载的 DLL 的版本信息等。
如何找到重复崩溃与环境之间的相关性?是否有特定的算法或统计方法会有所帮助?