首页 > 技术文章 > 在c语言中输出调用栈

duanqibo 2019-07-05 20:27 原文

#include <execinfo.h>

void my_backtrace()

{

    void *buffer[100] = {NULL};

    char **trace = NULL;

    int i = 0;

    int size = 0;

 

    size = backtrace(buffer, 100);

    trace = backtrace_symbols(buffer, size);

    if (NULL == trace)

    {

        return;

    }

 

    for (i = 0; i < size; ++i)

    {

        printf("%s\n", trace[i]);

    }

 

    free(trace);

    printf("----------done----------\n");

}

 

推荐阅读