linux之backtrace
backtrace用于打印函数调用堆栈
/******************************************************************************* * File Name : backtrace.c * Author : zjw * Email : [email protected] * Create Time : 2015年03月30日 星期一 09时44分15秒 *******************************************************************************/ #include <execinfo.h> #include <stdio.h> #include <stdlib.h> void print_trace() { void *array[10]; int size = 0; char **strings = NULL; int i = 0; size = backtrace(array, 10); strings = backtrace_symbols(array, size); if (strings == NULL) { perror("backtrace_symbols"); exit(-1); } printf("Obtained %zd stack frames.\n", size); for (i = 0; i < size; i++) { printf("%s\n", strings[i]); } free(strings); strings = NULL; } void dump_function() { print_trace(); } int main(int argc, char **argv) { dump_function(); return 0; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。