打印栈回溯

打印栈回溯

#include "execinfo.h" 
#include "stdio.h" 
#include "stdlib.h" 
void print_stacktrace()
{
    int size=128;
    void* array[128];
    int stack_num = backtrace(array, size);
    char ** stacktrace = backtrace_symbols(array, stack_num);
    for(int i =0; i< stack_num; ++i)
    {
        errorf("%s \n", stacktrace[i]);
    }
    free(stacktrace);
} 

然后通过addr2line -e 可执行文件 -f -C 栈地址对栈信息进行解析

posted @ 2024-07-11 21:16  牛犁heart  阅读(6)  评论(0编辑  收藏  举报