1 2 5 | int backtrace( void **buffer, int size); char **backtrace_symbols( void * const *buffer, int size); void backtrace_symbols_fd( void * const *buffer, int size, int fd); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #include <execinfo.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> void myfunc3( void ) { int j, nptrs; #define SIZE 100 void *buffer[100]; char **strings; nptrs = backtrace(buffer, SIZE); printf ( "backtrace() returned %d addresses\n" , nptrs); backtrace_symbols_fd(buffer, nptrs, STDOUT_FILENO); } void myfunc( void ) { myfunc3(); } int main( int argc, char *argv[]) { myfunc(); return 0; } |
联系客服