liunx:release下的方案。
This commit is contained in:
parent
b4de9d6c1c
commit
ba0e32d783
38
README.md
38
README.md
@ -8,20 +8,12 @@ crashelper是一个用于帮助开发人员快速定位crash的辅助工具,`W
|
|||||||
|
|
||||||
`crashelper`对`backward-cpp`源码加了部分接口用于配置具体的日志保存路径,不能直接拿原项目头文件`backward.hpp`进行更新替换。
|
`crashelper`对`backward-cpp`源码加了部分接口用于配置具体的日志保存路径,不能直接拿原项目头文件`backward.hpp`进行更新替换。
|
||||||
|
|
||||||
# 2. 设计思路
|
## 2.使用依赖
|
||||||
|
|
||||||
## 2.1. Debug模式
|
|
||||||
|
|
||||||
### 2.1.1 Windows
|
|
||||||
|
|
||||||
在Windows下的此模式,`crashelper`会仅保存崩溃时的调用栈信息,并将日志信息保存到设定的目录下。
|
|
||||||
|
|
||||||
### 2.1.2 Linux
|
|
||||||
|
|
||||||
在Linux下的此模式,`crashelper`会仅保存崩溃时的调用栈信息,并将日志信息保存到设定的目录下。
|
|
||||||
|
|
||||||
`Linux`下依赖`binutils`库。
|
`Linux`下依赖`binutils`库。
|
||||||
|
|
||||||
|
二进制的下载链接:[pkgs.org](https://pkgs.org/)
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# Ubuntu/Debian
|
# Ubuntu/Debian
|
||||||
sudo apt-get install binutils-dev
|
sudo apt-get install binutils-dev
|
||||||
@ -35,16 +27,26 @@ sudo pacman -S binutils-devel/binutils-libs
|
|||||||
sudo apk add binutils-dev
|
sudo apk add binutils-dev
|
||||||
```
|
```
|
||||||
|
|
||||||
二进制的下载链接:[pkgs.org](https://pkgs.org/)
|
`Windows`下无其他三方依赖。
|
||||||
|
|
||||||
其中`binutils`部分:
|
`MacOS`待补充。
|
||||||
|
|
||||||
### 2.1.3 MacOS
|
# 3. 设计思路
|
||||||
|
|
||||||
待补充。
|
## 2.1 Windows
|
||||||
|
|
||||||
## 2.2. Release模式
|
`Windows`在`Debug`模式下,`crashelper`会**仅保存**崩溃时的调用栈信息,并将日志信息保存到设定的目录下。
|
||||||
|
|
||||||
### 2.2.1 Windows
|
`Windows`在`Release`模式下,程序编译结果会额外产生`pdb`调试符号文件(此为额外的产生,不影响可执行程序的`Release`性,即不会影响代码优化和运行时性能),请妥善保存好此`pdb`文件,用于后续配合`dump`文件分析异常。`crashelper`会保存崩溃时的`windump`文件到设定的目录下。
|
||||||
|
|
||||||
在Windows下的此模式,程序编译结果会额外产生`pdb`调试符号文件(此为额外的产生,不影响可执行程序的`Release`性,即不会影响代码优化和运行时性能),请妥善保存好此`pdb`文件,用于后续配合`dump`文件分析异常。程序运行时,`crashelper`会保存崩溃时的`dump`文件到设定的目录下。
|
## 2.2 Linux
|
||||||
|
|
||||||
|
在`Linux`环境下,无论`Debug`还是`Release`模式,都将带有`-g`调试信息选项。
|
||||||
|
|
||||||
|
`-g`可以与任何级别的优化一起使用并带有调试信息,调试信息只占用二进制空间,正常代码逻辑不用用到它(不会加载到内存中使用),因此不会影响代码的优化结果,仅会影响到程序体积。
|
||||||
|
|
||||||
|
在Linux下的此模式,`crashelper`会仅保存崩溃时的调用栈信息,并将日志信息保存到设定的目录下。
|
||||||
|
|
||||||
|
### 2.3 MacOS
|
||||||
|
|
||||||
|
待补充。
|
@ -15,6 +15,7 @@ add_library(crashelper STATIC ${CRASHELPER_SOURCES})
|
|||||||
|
|
||||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
target_link_libraries(crashelper PUBLIC pthread dl bfd)
|
target_link_libraries(crashelper PUBLIC pthread dl bfd)
|
||||||
|
target_compile_options(crashelper PUBLIC -g)
|
||||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||||
target_link_libraries(crashelper PRIVATE DbgHelp)
|
target_link_libraries(crashelper PRIVATE DbgHelp)
|
||||||
|
@ -18,8 +18,7 @@ int main()
|
|||||||
SetDumpFileSavePath("D:\\dump");
|
SetDumpFileSavePath("D:\\dump");
|
||||||
SetDumpLogSavePath("D:\\dump");
|
SetDumpLogSavePath("D:\\dump");
|
||||||
#else
|
#else
|
||||||
SetDumpFileSavePath("~/dump");
|
SetDumpLogSavePath("dump");
|
||||||
SetDumpLogSavePath("~/dump");
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
CRASHELPER_MARK_ENTRY();
|
CRASHELPER_MARK_ENTRY();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user