50 lines
1.6 KiB
Markdown
50 lines
1.6 KiB
Markdown
# crashelper
|
|
|
|
## 1. 介绍
|
|
|
|
crashelper是一个用于帮助开发人员快速定位crash的辅助工具,`Windows`下暂时仅支持`MSVC`编译器。
|
|
|
|
用到了仅头文件项目 `=>` [backward-cpp](https://github.com/bombela/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`库。
|
|
|
|
```shell
|
|
# 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](https://pkgs.org/)
|
|
|
|
其中`binutils`部分:
|
|
|
|
### 2.1.3 MacOS
|
|
|
|
待补充。
|
|
|
|
## 2.2. Release模式
|
|
|
|
### 2.2.1 Windows
|
|
|
|
在Windows下的此模式,程序编译结果会额外产生`pdb`调试符号文件(此为额外的产生,不影响可执行程序的`Release`性,即不会影响代码优化和运行时性能),请妥善保存好此`pdb`文件,用于后续配合`dump`文件分析异常。程序运行时,`crashelper`会保存崩溃时的`dump`文件到设定的目录下。 |