diff --git a/src/ucore_backtrace.c b/src/ucore_backtrace.c index 07c1e61..8e4b0f9 100644 --- a/src/ucore_backtrace.c +++ b/src/ucore_backtrace.c @@ -1,14 +1,23 @@ #include +#include #define MAX_BACKTRACE_SYMBOLS 96 void uc_backtrace_fd(int fd) { void *buffer[MAX_BACKTRACE_SYMBOLS]; + void **syms; int ptrs; ptrs = backtrace(buffer, MAX_BACKTRACE_SYMBOLS); - backtrace_symbols_fd(buffer, ptrs, fd); + if(ptrs > 0) { //dont print out this function + ptrs--; + syms = &buffer[1]; + } else { + syms = &buffer[0]; + } + + backtrace_symbols_fd(syms, ptrs, fd); }