Browse Source

1

congestion
Evgeny 5 months ago
parent
commit
7b305e820f
  1. 10
      lib/mem.c

10
lib/mem.c

@ -194,7 +194,7 @@ void u_free_impl(void* ptr, const char* location) {
}
UNLOCK();
if (!found) {
printf("%s: u_free: Attempt to free unallocated or already freed pointer %p\n", location, ptr);
DEBUG_ERROR(DEBUG_CATEGORY_MEMORY, "%s: u_free: Attempt to free unallocated or already freed pointer %p\n", location, ptr);
exit(EXIT_FAILURE);
}
free(base);
@ -214,10 +214,10 @@ void u_report_unfreed_blocks(void) {
void* head = allocated_head;
UNLOCK();
if (count == 0) {
printf("No unfreed memory blocks.\n");
DEBUG_INFO(DEBUG_CATEGORY_MEMORY, "No unfreed memory blocks.\n");
return;
}
printf("Unfreed memory blocks: %zu\n", count);
DEBUG_ERROR(DEBUG_CATEGORY_MEMORY, "Unfreed memory blocks: %zu\n", count);
void* curr = head;
while (curr) {
char* alloc_loc = (char*)curr;
@ -225,8 +225,8 @@ void u_report_unfreed_blocks(void) {
uint32_t size = *(uint32_t*)(prefix_start + BOUNDARY_CHECK_SIZE + 4);
void* user_ptr = prefix_start + BOUNDARY_CHECK_SIZE + 8;
u_check(user_ptr, "unfreed_check", "u_report_unfreed_blocks");
printf(" - Allocated at: %s, size: %u bytes\n", alloc_loc, size);
printf(" Full memory dump at %p:\n", user_ptr);
DEBUG_ERROR(DEBUG_CATEGORY_MEMORY, " - Allocated at: %s, size: %u bytes\n", alloc_loc, size);
DEBUG_ERROR(DEBUG_CATEGORY_MEMORY, " Full memory dump at %p:\n", user_ptr);
hex_dump(user_ptr, size);
curr = *(void**)((uint8_t*)curr + NEXT_OFFSET);
}

Loading…
Cancel
Save