crashelper
1. 介绍
crashelper是一个用于帮助开发人员快速定位crash的辅助工具,Windows下暂时仅支持MSVC编译器。
用到了仅头文件项目 => backward-cpp,crashelper已包含backward-cpp项目中的头文件。
crashelper对backward-cpp源码加了部分接口用于配置具体的日志保存路径,不能直接拿原项目头文件backward.hpp进行更新替换。
2. 设计思路
2.1. Debug模式
2.1.1 Windows
在Windows下的此模式,crashelper会仅保存崩溃时的调用栈信息,并将日志信息保存到设定的目录下。
2.1.2 Linux
在Linux下的此模式,crashelper会仅保存崩溃时的调用栈信息,并将日志信息保存到设定的目录下。
Linux下依赖binutils库。
# Ubuntu/Debian
sudo apt-get install binutils-dev
# REHL/CentOS/Fedora
sudo yum install binutils-devel
# openSUSE/SUSE
sudo zypper install binutils-devel
# Arch Linux/Manjaro
sudo pacman -S binutils-devel/binutils-libs
# Alpine
sudo apk add binutils-dev
二进制的下载链接:pkgs.org
其中binutils部分:
2.1.3 MacOS
待补充。
2.2. Release模式
2.2.1 Windows
在Windows下的此模式,程序编译结果会额外产生pdb调试符号文件(此为额外的产生,不影响可执行程序的Release性,即不会影响代码优化和运行时性能),请妥善保存好此pdb文件,用于后续配合dump文件分析异常。程序运行时,crashelper会保存崩溃时的dump文件到设定的目录下。
Description
Languages
C++
98.9%
CMake
1.1%