如何找到崩溃与系统环境之间的关联?


10

有空时,我正在一个小型的基于Web的系统上工作,该系统收集从Delphi Windows应用程序发送的崩溃报告(但不收集其他非崩溃的错误报告)。

为了进行故障排除,用户希望使用数据挖掘功能来查找硬件或操作系统版本与特定错误和/或崩溃之间的关系。

例如,这应该如何工作:

  • 对于每个崩溃,数据库中都有一个报告,该报告在崩溃时具有堆栈跟踪(调用堆栈)的指纹/哈希码,以识别重复项
  • 该算法检查错误报告的所有重复项是否还具有其他一些常见属性,例如缺少操作系统的服务包
  • 分析结果列出了错误报告共有的所有属性

假设这些自动错误报告包含所有关键信息,例如当前正在运行的所有进程的名称,文件名,已加载的DLL的版本信息等。

如何找到反复崩溃与环境之间的关联?是否有特定的算法或统计方法会有所帮助?


2
寻找相关性是一项艰巨的任务。您在工作中见过工具吗?它可能会帮助您找到组织数据的正确方法。

因此,您也想在Delphi中进行相关计算吗?然后看一下以下Delphi数学函数列表:它涵盖了很多内容,还提供了说明和指向库的链接。

@DaveBall感谢您提供有趣的链接,但是,尽管错误报告来自Delphi,但Web服务实际上是用Java实现的-也许我可以将算法用作起点,也可以在“离线”统计工具中使用。

1
您可能需要研究“离散危害模型”。您似乎想对固定特征(环境变量)上的故障事件(崩溃)以及自上次崩溃以来的时间进行回归。如果您有足够的观测值(崩溃报告),则可以将环境变量之间的交互添加到模型中。这些将为您指出系统冲突的方向。不幸的是,我不知道在Java中实现这种模型有多么容易。
jmtroos 2012年

1
可以想象的是,分析的类型取决于问题的大小,即有多少种不同类型的崩溃?有多少个可能的属性?
Sameer 2012年

Answers:


1

您能否对用户的[未崩溃的]计算机进行采样,以获得与崩溃报告中相同的信息?因为这样您就可以使用逻辑回归对那些属性(和交互作用)建模,以得出崩溃的可能性。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.