c++中打印堆栈信息

编译选项 -g -rdynamic

#include <execinfo.h>

void print_stacktrace() {
    void *buffer[100];
    int nptrs = backtrace(buffer, 100);
    char **strings = backtrace_symbols(buffer, nptrs);
    if (strings == NULL) {
        perror("backtrace_symbols");
        exit(EXIT_FAILURE);
    }
    for (int i = 0; i < nptrs; i++) {
        printf("%s\n", strings[i]);
    }
    free(strings);
}

posted @ 2023-01-13 15:25  马肯尼煤牙巴骨  阅读(236)  评论(0)    收藏  举报