From 6c05ee0e82bc9cd95e2813d3178073f561befab9 Mon Sep 17 00:00:00 2001 From: Eduardo Bart Date: Wed, 13 Jul 2011 01:25:43 -0300 Subject: [PATCH] allocator delete checks --- src/allocator.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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();