Google Breakpad使用方法

源码下载地址:https://chromium.googlesource.com/breakpad/breakpad

依赖头文件下载地址: https://chromium.googlesource.com/linux-syscall-support

Breakpad由三个主要组件:

client 是一个库, 以library的形式内置在应用中,在应用崩溃时写入一个minidump文件

symbol dumper 是一个程序,读取由编译器产生的调试信息(debugging information),并生成一个使用Breakpad格式的符号文件( symbol file)

processor 是一个程序,读取 minidump文件 和 symbol file,生成可读的c/c++ 堆栈跟踪(Stack trace.)
 

实现机制

在windows平台上,使用微软提供的 SetUnhandledExceptionFilter() 方法来实现。

在OS X平台上,通过创建一个线程来监听 Mach Exception port 来实现。

在Linux平台上,通过设置一个信号处理器来监听 SIGILL SIGSEGV 等异常信号。

2 源码编译依赖

源码编译需要GYP生成VS打开的sln文件,GYP又依赖于python2.7.x版本

依赖关系:python2.7.x -> GYP -> Visual Studio;可顺序安装

2.1 GYP下载和安装

GYP(Generate Your Projects)是由 Chromium 团队开发的跨平台自动化项目构建工具,Chromium 便是通过 GYP 进行项目构建管理。

gyp码云下载:gyp: https://github.com/chromium/gyp.git

gyp官方下载:GitHub - chromium/gyp: GYP is a Meta-Build system: a build system that generates other build systems.

注:从2022.11.24开始,Breakpad源码中删除了breakpad_client.gyp文件,该文件是基于GYP生成VS工程的,新版已经更新为GN

下载安装,python setup.py install

Google Breakpad使用方法_第1张图片

Google Breakpad使用方法_第2张图片

py版本:

2.2 生成vs工程

安装好gyp之后(gyp-master.zip),复制到gyp-master目录到google breakpad\src\tools目录下,然后执行命令:gyp --no-circular-check "../../client/windows/breakpad_client.gyp" -Dwin_release_RuntimeLibrary=2 -Dwin_debug_RuntimeLibrary=3

报错提示缺少google test相关文件,因此需要下载google test,可以通过码云下载(googletest: googlegtest仓库https://github.com/google/googletest文档https://google.github.io/googletest/.),文件:googletest.7z

将GoogleTest源码下的googlemock和googletest两个子文件夹拷贝到google breakpad/src/testing目录下,再次执行上述命令:

在windows目录下生成vs工程文件

Google Breakpad使用方法_第3张图片

你可能感兴趣的:(c++)