學(xué)會(huì)這個(gè)絕招,讓?C ?崩潰無處可逃!
時(shí)間:2021-08-19 16:30:43
手機(jī)看文章
掃描二維碼
隨時(shí)隨地手機(jī)看文章
[導(dǎo)讀]Breakpad是Google用C編寫的一個(gè)開源、跨平臺(tái)的崩潰報(bào)告系統(tǒng),它支持Windows、Linux和macOS,并提供了一個(gè)上傳器,可以在進(jìn)程崩潰時(shí)向一個(gè)配置好的URL提交minidump文件。目前,有很多大型項(xiàng)目都在使用Breakpad,例如:GoogleChrome、F...
Breakpad 是 Google 用 C 編寫的一個(gè)開源、跨平臺(tái)的崩潰報(bào)告系統(tǒng),它支持 Windows、Linux 和 macOS,并提供了一個(gè)上傳器,可以在進(jìn)程崩潰時(shí)向一個(gè)配置好的 URL 提交 minidump 文件。
目前,有很多大型項(xiàng)目都在使用 Breakpad,例如:Google Chrome、Firefox、Google Picasa、Camino、Google Earth 等。
1工作原理
BreakPad 工作原理:
其中,包含了三個(gè)主要組件:
2編譯安裝
目前,有很多大型項(xiàng)目都在使用 Breakpad,例如:Google Chrome、Firefox、Google Picasa、Camino、Google Earth 等。
- 主頁:https://chromium.googlesource.com/breakpad/breakpad/
- 文檔:https://chromium.googlesource.com/breakpad/breakpad/ /HEAD/docs
- GitHub 地址:https://github.com/google/breakpad
1工作原理
BreakPad 工作原理:
其中,包含了三個(gè)主要組件:
- Breakpad?client:是一個(gè)庫(即:libbreakpad_client.a),將來要集成到我們的程序中。用于寫 minidump 文件,捕獲當(dāng)前線程的狀態(tài),以及可執(zhí)行文件/共享庫的標(biāo)識(shí)。
- Breakpad 符號(hào)轉(zhuǎn)儲(chǔ)工具:是一個(gè)程序(即:dump_syms),用于讀取由編譯器產(chǎn)生的調(diào)試信息,并以 Breakpad 自己的格式生成一個(gè)符號(hào)文件。
- Breakpad minidump 處理器:是一個(gè)程序(即:minidump_stackwalk),用于讀取 minidump 文件和符號(hào)文件,并生成一個(gè)可讀的 C/C 堆棧跟蹤。
2編譯安裝
- 下載 Breakpad 源碼;
- 由于 Breakpad 依賴于 LSS,所以還需要下載它(地址:https://github.com/adelshokhy112/linux-syscall-support);
- 將 LSS 中的
linux_syscall_support.h
文件放至breakpad/src/third_party/lss/
目錄下。 - 編譯 Breakpad,步驟非常簡單:
$?cd?breakpad
$?./configure?