Linux Dump stack


#include 
int dump_stack(void)
{
        int j, nptrs;
        void *buffer[16];
        char ** strings;
        nptrs = backtrace(buffer,16);
        ERROR_PRINT("backtrace() returned %d addresses\n",nptrs);
        strings = backtrace_symbols(buffer, nptrs);
        if (strings == NULL) {
                ERROR_PRINT("error backtrace_symbols\n");
                return -1;
        }
        for(j = 0; j < nptrs; j++)
                ERROR_PRINT("[%02d] %s\n",j,strings[j]);
        free(strings);
        return 0;
}

程序出错时Dump stack辅助定位问题,代码如图所示,

详细内容参见:

https://blog.csdn.net/gongmin856/article/details/79192259