diff --git a/src/allocator.cpp b/src/allocator.cpp index 752991d7..d25dc055 100644 --- a/src/allocator.cpp +++ b/src/allocator.cpp @@ -106,13 +106,13 @@ static void addr2line(void *address, const char* name, bool viewSource = false) printf("\n"); } -void printBacktrace() +void printBacktrace(int skips) { void *buffer[128]; int size = backtrace(buffer, 128); char **strings = backtrace_symbols(buffer, size); - for(int i = 1; i < size; i++) { - if(i == 1) { + for(int i = 1 + skips; i < size; i++) { + if(i == 1 + skips) { printf("\tfrom "); } else { printf("\tat "); @@ -277,7 +277,7 @@ void Allocator::deallocate(void *p) disableAllocator(); printf("attempt to delete NULL address\n"); - printBacktrace(); + printBacktrace(1); enableAllocator(); } else { @@ -293,7 +293,7 @@ void Allocator::deallocate(void *p) free(p); } else { printf("invalid delete address\n"); - printBacktrace(); + printBacktrace(1); } enableAllocator();