Crash Dump自动化分析的尝试
来源:互联网 发布:新纪元软件下载 编辑:程序博客网 时间:2024/06/07 00:41
其实另一个产品线的同事已经开发了自动分析的工具,但是非常不好用。同组的同事花了好几天也没能应用到目前的产品上来。
后来我接手了Crash Dump分析的工作,也了解了一下那个工具(称为A),它还需要调用另一个工具(称为B),过程繁琐,并且几乎无法维护和扩展。可以看出B也是尝试进行Crash Dump自动分析的结果,但需要人工干预和交互,算个半自动工具。一个C#的WinForm程序,仅通过windbg获得调用栈,然后自己实现一套本应由windbg来做的功能,当然,效果肯定不如windbg。因为B的维护不便,有人开发了A,作为B的补充,使得分析工作可以自动化,但是受限于B,做的还不够好。
A+B的组合还有个致命的问题,dump只能一个一个的分析,慢!我也是个懒人,每天大把的时间花在不顺手的工具上显然让我不爽。于是利用我之前的crash分析经验,用Python写了一个新的工具DumpDigger。
大致思路就是利用 cdb/windbg的!analyze命令获得crash dump的分析结果,用FAILURE_BUCKET_ID作为问题标识,取出关键字段的信息保存到数据库。运行时会启动多个进程同时分析,这样虽然!analyze比k 1000慢不少,但仍然能获得几倍的效率提升。最后,待指定的dump都分析完成,会根据数据库中保存的信息生成详尽的分析报告,报告url通过邮件自动发送。
基于Django写了分析报告的展示功能。DumpDigger的分析报告为XML格式,同样保存在数据库中,展示时通过xslt转换为html。用Twitter的Bootstrap写前端页面确实很轻松,最终的实现效果还不错,得到大家的好评。将分析脚本添加到计划任务中后,每天自动分析、发布日报,完全不需要人工干预,我也终于从机械的劳动中解放了。
下一步的目标是将DumpDigger与缺陷跟踪系统结合起来,用于跟踪发布版本的crash问题。
后来我接手了Crash Dump分析的工作,也了解了一下那个工具(称为A),它还需要调用另一个工具(称为B),过程繁琐,并且几乎无法维护和扩展。可以看出B也是尝试进行Crash Dump自动分析的结果,但需要人工干预和交互,算个半自动工具。一个C#的WinForm程序,仅通过windbg获得调用栈,然后自己实现一套本应由windbg来做的功能,当然,效果肯定不如windbg。因为B的维护不便,有人开发了A,作为B的补充,使得分析工作可以自动化,但是受限于B,做的还不够好。
A+B的组合还有个致命的问题,dump只能一个一个的分析,慢!我也是个懒人,每天大把的时间花在不顺手的工具上显然让我不爽。于是利用我之前的crash分析经验,用Python写了一个新的工具DumpDigger。
大致思路就是利用 cdb/windbg的!analyze命令获得crash dump的分析结果,用FAILURE_BUCKET_ID作为问题标识,取出关键字段的信息保存到数据库。运行时会启动多个进程同时分析,这样虽然!analyze比k 1000慢不少,但仍然能获得几倍的效率提升。最后,待指定的dump都分析完成,会根据数据库中保存的信息生成详尽的分析报告,报告url通过邮件自动发送。
基于Django写了分析报告的展示功能。DumpDigger的分析报告为XML格式,同样保存在数据库中,展示时通过xslt转换为html。用Twitter的Bootstrap写前端页面确实很轻松,最终的实现效果还不错,得到大家的好评。将分析脚本添加到计划任务中后,每天自动分析、发布日报,完全不需要人工干预,我也终于从机械的劳动中解放了。
下一步的目标是将DumpDigger与缺陷跟踪系统结合起来,用于跟踪发布版本的crash问题。
- Crash Dump自动化分析的尝试
- 某杀毒软件的crash dump 分析
- Crash Dump分析笔记
- android crash自动化分析
- dump file (crash 分析)
- 保存crash的dump文件
- crash dump的捕捉原理
- 使用 Crash 工具分析 Linux dump 文件
- 使用 Crash 工具分析 Linux dump 文件
- 使用 Crash 工具分析 Linux dump 文件
- 使用 Crash 工具分析 Linux dump 文件
- 使用 Crash 工具分析 Linux dump 文件
- 使用 Crash 工具分析 Linux dump 文件
- 使用 Crash 工具分析 Linux dump 文件
- 使用 Crash 工具分析 Linux dump 文件
- 怎样分析crash dump(空指针)
- 怎样分析crash dump(软件看门狗超时)
- 怎样分析crash dump(内存错误)
- SWT/Jface 如何销毁控件,如何重新生成控件?
- MySQL绿色解压缩版
- Java dom读取XML文件中特殊字符-报错
- wince6 两个应用程序进程间通信 OnCopyData(改进)
- 调试release版本程序dump时出现的代码定位不准确问题
- Crash Dump自动化分析的尝试
- GridView自定义用户控件实现增、删、改
- 详解 Android 的 Activity 组件
- 使一个黑暗的博客网页设计布局与PS图象处理软件
- 最近在学 spring IOC 闲来没事 自己模仿写个最基本的
- 小米手机miui版本号详细介绍
- 2012届华为校园招聘上机考试题目
- Java的Sting中的null和“”区别
- null和""的区别