在c语言中输出调用栈


#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");

}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM