c打印堆栈信息

#include <stdlib.h>
#include <stdio.h>
#include <execinfo.h>
void f(void) {
    char **strings;
    size_t i, size;
    enum Constexpr { MAX_SIZE = 1024 };
    void *array[MAX_SIZE];
    size = backtrace(array, MAX_SIZE);
    strings = backtrace_symbols(array, size);
    for (i = 0; i < size; i++)
        printf("%s\n", strings[i]);
    puts("");
    free(strings);
}


void test(void) {
    f();
}

int main(void) {
    test();
}
posted @ 2023-03-29 13:19  zhaogaojian  阅读(98)  评论(0编辑  收藏  举报