我是靠谱客的博主 热心太阳,最近开发中收集的这篇文章主要介绍C++ 之 backtrace,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部