Backward Cpp库的使用记录
目录
注意
本文最后更新于 2023-11-13,文中内容可能已过时。
基本内容
项目地址: https://github.com/bombela/backward-cpp
这个库是一个用于在程序崩溃的时候打印堆栈信息和代码信息的 c++库。
笔者是在 mac 系统上尝试使用的,该库的尝试结果如下:
- 可以打印函数名,但无法打印文件名和行号, 有时候连函数名也无法打印。
- 详情可见: https://github.com/bombela/backward-cpp/issues/231
- 据说在 linux 平台上是可以完美打印信息的, 笔者并没有尝试过。
至于怎么使用这个库, 作者在主页上写的很清楚, 这里就不再赘述了。
其他
libdwarf
笔者寻找的到的库在 mac 上编译有一点点问题,处理一下就好了。 注意,即使编译好了这个库,也无法打印文件名和行号
libdwarf 在mac平台上编译有问题, 添加 target_link_libraries(${target} PUBLIC ${LIBELF_LIBRARIES} "z")
“z” 库的链接即可。 添加到 Cmake 的配置文件里面。
安装的时候, include 会提示有问题, 笔者是采取手动复制的情况。 即手动复制文件夹到 /usr/local/include/libwarf
里。
build/config.h
不知道有没有用,一起复制过去了。
输出一个宏定义的值
|
|
可见上述代码, 定义了XSTR, STR
两个宏之后, 使用 XSTR(name)
的形式即可以打印一个宏的值。