概述
example
#include <iostream>
#define BOOST_STACKTRACE_USE_ADDR2LINE
#include <boost/stacktrace.hpp>
void my_func_2(void) {
std::cout << boost::stacktrace::stacktrace() << std::endl;
}
void my_func_1(double f) {
(void)f;
my_func_2();
}
void my_func_1(int i) {
(void)i;
my_func_2();
}
int main(int argc, char **argv) {
long long unsigned int n;
if (argc > 1) {
n = strtoul(argv[1], NULL, 0);
} else {
n = 1;
}
for (long long unsigned int i = 0; i < n; ++i) {
my_func_1(1); // line 28
my_func_1(2.0); // line 29
}
}
# g++ backtrace.cpp -ldl
# ./a.out
0# my_func_2() in ./a.out
1# my_func_1(int) in ./a.out
2# main in ./a.out
3# __libc_start_main in /usr/lib64/libc.so.6
4# _start in ./a.out
0# my_func_2() in ./a.out
1# my_func_1(double) in ./a.out
2# main in ./a.out
3# __libc_start_main in /usr/lib64/libc.so.6
4# _start in ./a.out
最后
以上就是热心太阳为你收集整理的C++ 之 backtrace的全部内容,希望文章能够帮你解决C++ 之 backtrace所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复