static void lib_debug_alloc(void *ptr, size_t size, int level) { unsigned int index; #ifdef LIB_DEBUG_CALLER void *func = NULL; #endif if (!lib_debug_initialized) lib_debug_init(); index = 0; while (index < LIB_DEBUG_SIZE && lib_debug_address[index] != NULL) { index++; } if (index == LIB_DEBUG_SIZE) { printf("Error: lib_debug_alloc(): Out of debug address slots. (increase LIB_DEBUG_SIZE!)\n"); return; } #ifdef LIB_DEBUG_CALLER switch (level) { case 1: func = lib_debug_func_level1(); break; case 2: func = lib_debug_func_level2(); break; case 3: func = lib_debug_func_level3(); break; } lib_debug_caller[index] = func; #endif #if 0 if (ptr == (void *)0x85c2c80) *(int *)0 = 0; #endif #if 0 printf("lib_debug_alloc(): Alloc address %p size %i slot %i from %p.\n", ptr, size, index, func); #endif lib_debug_address[index] = ptr; lib_debug_size[index] = (unsigned int)size; #ifdef LIB_DEBUG_PINPOINT lib_debug_filename[index]=lib_debug_pinpoint_filename; lib_debug_line[index]=lib_debug_pinpoint_line; lib_debug_add_top(lib_debug_pinpoint_filename, lib_debug_pinpoint_line, (unsigned int)size); lib_debug_pinpoint_line=0; #endif lib_debug_current_total += (unsigned int)size; if (lib_debug_current_total > lib_debug_max_total) { lib_debug_max_total = lib_debug_current_total; } }
static void lib_debug_alloc(void *ptr, size_t size, int level) { unsigned int index; if (!lib_debug_initialized) { lib_debug_init(); } index = 0; while (index < LIB_DEBUG_SIZE && lib_debug_address[index] != NULL) { index++; } if (index == LIB_DEBUG_SIZE) { printf("Error: lib_debug_alloc(): Out of debug address slots. (increase LIB_DEBUG_SIZE!)\n"); return; } #ifdef LIB_DEBUG_CALLER lib_debug_bt_numcaller[index] = backtrace(lib_debug_bt_caller[index], DEBUG_BT_MAXDEPTH); #if 0 printf("lib_debug_alloc(): Alloc address %p size %i slot %i from %p.\n", ptr, size, index, func); #endif #endif lib_debug_address[index] = ptr; lib_debug_size[index] = (unsigned int)size; #ifdef LIB_DEBUG_PINPOINT lib_debug_filename[index] = lib_debug_pinpoint_filename; lib_debug_line[index] = lib_debug_pinpoint_line; lib_debug_add_top(lib_debug_pinpoint_filename, lib_debug_pinpoint_line, (unsigned int)size); lib_debug_pinpoint_line = 0; #endif lib_debug_current_total += (unsigned int)size; if (lib_debug_current_total > lib_debug_max_total) { lib_debug_max_total = lib_debug_current_total; } }