衡量某個應用程序的穩定性的一個重要指標即它自身的崩潰率的統計,但是如何判斷應用程序崩潰,且上報崩潰產生的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.將分析結果上報后台,統計程序崩潰率,從而計算程序穩定性。