衡量某个应用程序的稳定性的一个重要指标即它自身的崩溃率的统计,但是如何判断应用程序崩溃,且上报崩溃产生的dmp文件进行分析?
google提供了一套开源的系统 Crashpad,详细了解参见
https://crashpad.chromium.org。
https://chromium.googlesource.com/crashpad/crashpad/+/master/doc/developing.md 描述的的是如何获取并编译Crashpad代码。
由于集成了google的crashpad之后,经测试,对于程序某些崩溃并未很好的捕获到,故而参照google的crashpad思路,自己实现一套崩溃捕获的异常处理上报系统。
解决方案:
流程:
1. 启动应用程序,同时启动守护进程,两者直接建立管道通信。
2. 应用程序异常或正常退出,管道断裂,守护进程检测程序是否崩溃。(要设置程序发生异常时自动生成dmp)。
3.使用dbgeng.dll 将本地dmp文件进行崩溃点自动分析。
4.将分析结果上报后台,统计程序崩溃率,从而计算程序稳定性。