1.下載源碼
1)下載breakpad: breakpad源碼可在https://github.com/google/breakpad.git
2)linux_syscall_support.h: https://download.csdn.net/download/bingzhongdehuoyan/9716614 (需要CSDN下載)
從https://chromium.googlesource.com/linux-syscall-support/下載該文件(這個需要FQ)
將linux_syscall_support.h放到breakpad/src/third_party/lss/中
要新建lss目錄復制文件到該目錄。
2. 編譯
控制台cd breakpad 進入目錄
運行指令 ./configure
運行指令 make -j4
運行指令 sudo make install
3. 配置Qt環境
1)在.pro工程文件里面添加配置,鏈接到庫 記得要定義:DEFINES += USE_BREAKPAD
2)為了生成可讀的stack trace, breakpad需要你將binaries里的調試符號(debugging symbols)轉換成基於文本格式的symbol files。首先確保你在編譯代碼的時候加上 -g 參數來生成帶調試符號。
即在Pro文件里面添加:QMAKE_CXXFLAGS += -g
4. 測試breakpad,生成dmp文件
運行后崩潰報錯:
生成了dmp文件:
5. 將dmp文件轉換成能看的懂的txt文件
1)獲取symbol文件
命令:dump_syms ~/wjg/build-DC520-debug/DC520 > DC520.sym
DC520是我的可執行文件 如圖:
2)生成Stack Trace
(1)為了可以使用 ``minidump_stackwalk` 工具來生成stack trace,你需要將文件放置在一定的目錄結構,symbol file的第一行說明了需要放置的目錄結構
(2)查看該文件頭信息:# head -n1 DC520.sym
(3)並根據該信息建立文件夾,並放入符號文件
(4) 解析dmp文件
Sudo minidump_stackwalk ~/wjg/build-DC520-debug/crash/9e907142-d52c-47dd-6865798a-be243b8c.dmp ./symbols > DC520.txt
6. 查看轉換成txt文檔的日志文件
至此成功用breakpad抓取崩潰報告並解析完成
參考鏈接:
https://blog.csdn.net/u011720560/article/details/105639279
https://blog.csdn.net/BingZhongDeHuoYan/article/details/53743659