aaaaaa123456789 icon

Allocation tracking - malloc wrappers

aaaaaa123456789 | PRO | 10/24/22 09:57:39 AM UTC | 0 ⭐ | 1747 👁️ | Never ⏰ | []
C |

1.21 KB

|

Source Code

|

0 👍

/

0 👎

#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
 
extern void * __libc_malloc(size_t);
extern void * __libc_memalign(size_t, size_t);
extern void * __libc_realloc(void *, size_t);
extern void * __libc_calloc(size_t, size_t);
extern void __libc_free(void *);
 
static void memlog (const char * keyword, size_t size, size_t reference, void * result) {
  fprintf(stderr, "%7s %#18zx %#18zx %18p\n", keyword, reference, size, result);
}
 
extern void * malloc (size_t size) {
  void * result = __libc_malloc(size);
  memlog("malloc", size, 0, result);
  return result;
}
 
extern void * aligned_alloc (size_t alignment, size_t size) {
  void * result = __libc_memalign(alignment, size);
  memlog("malloc", size, alignment, result);
  return result;
}
 
extern void * calloc (size_t members, size_t size) {
  void * result = __libc_calloc(members, size);
  memlog("calloc", size, members, result);
  return result;
}
 
extern void * realloc (void * buffer, size_t size) {
  void * result = __libc_realloc(buffer, size);
  memlog("realloc", size, (size_t) buffer, result);
  return result;
}
 
extern void free (void * buffer) {
  memlog("free", 0, (size_t) buffer, NULL);
  __libc_free(buffer);
}

Comments