代码

#include <execinfo .h>#include <stdio .h>#include <stdlib .h> void fun1();void fun2();void fun3(); void print_stacktrace(); int main(){    fun3();} void fun1(){    printf("stackstrace begin:\n");    print_stacktrace();} void fun2(){    fun1();} void fun3(){    fun2();} void print_stacktrace(){    int size = 16;    void * array[16];    int stack_num = backtrace(array, size);    char ** stacktrace = backtrace_symbols(array, stack_num);    for (int i = 0; i < stack_num; ++i)    {        printf("%s\n", stacktrace[i]);    }    free(stacktrace);}

编译

gcc test.cc -rdynamic -g -o test3