1.9 KiB
1.9 KiB
crashelper
1. 介绍
crashelper是一个用于帮助开发人员快速定位crash的辅助工具,Windows
下暂时仅支持MSVC
编译器。
用到了仅头文件项目 =>
backward-cpp,crashelper
已包含backward-cpp
项目中的头文件。
crashelper
对backward-cpp
源码加了部分接口用于配置具体的日志保存路径,不能直接拿原项目头文件backward.hpp
进行更新替换。
2.使用依赖
Linux
下依赖binutils
库。
二进制的下载链接:pkgs.org
# 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
Windows
下无其他三方依赖。
MacOS
待补充。
3. 设计思路
2.1 Windows
Windows
在Debug
模式下,crashelper
会仅保存崩溃时的调用栈信息,并将日志信息保存到设定的目录下。
Windows
在Release
模式下,程序编译结果会额外产生pdb
调试符号文件(此为额外的产生,不影响可执行程序的Release
性,即不会影响代码优化和运行时性能),请妥善保存好此pdb
文件,用于后续配合dump
文件分析异常。crashelper
会保存崩溃时的windump
文件到设定的目录下。
2.2 Linux
在Linux
环境下,无论Debug
还是Release
模式,都将带有-g
调试信息选项。
-g
可以与任何级别的优化一起使用并带有调试信息,调试信息只占用二进制空间,正常代码逻辑不用用到它(不会加载到内存中使用),因此不会影响代码的优化结果,仅会影响到程序体积。
在Linux下的此模式,crashelper
会仅保存崩溃时的调用栈信息,并将日志信息保存到设定的目录下。
2.3 MacOS
待补充。