1、简介
Breakpad 是 Google 用 C++ 编写的一个开源、跨平台的崩溃报告系统,它支持 Windows、Linux 和 macOS,并提供了一个上传器,可以在进程崩溃时向一个配置好的 URL 提交 minidump 文件。
目前,有很多大型项目都在使用 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
2、工作原理
BreakPad 工作原理包含了三个主要组件:
Breakpad client:是一个库(即:libbreakpad_client.a),将来要集成到我们的程序中。用于写 minidump 文件,捕获当前线程的状态,以及可执行文件/共享库的标识。
Breakpad 符号转储工具:是一个程序(即:dump_syms),用于读取由编译器产生的调试信息,并以 Breakpad 自己的格式生成一个符号文件。
Breakpad minidump 处理器:是一个程序(即:minidump_stackwalk),用于读取 minidump 文件和符号文件,并生成一个可读的 C/C++ 堆栈跟踪。
3、编译安装
下载 Breakpad 源码;
由于 Breakpad 依赖于 LSS,所以还需要下载它(地址:https://github.com/adelshokhy112/linux-syscall-support);
将 LSS 中的 linux_syscall_support.h 文件放至 breakpad/src/third_party/lss/ 目录下。
编译 Breakpad,步骤非常简单:
cd breakpad
./configure && make
make
sudo make install
成功之后,会生成 libbreakpad_client.a 库文件,以及 dump_syms、minidump_stackwalk 等程序。
4、将 Breakpad 集成到程序中
此处及以后请参考以下这篇博文,感谢!!!!
https://blog.csdn.net/u012489236/article/details/107923924