general: add memory auditing

memory_utils: added to wrap memory alloc / free
general: adjusted stabdard and other memory allocs t be audited
This commit is contained in:
Ian-Clowes 2020-08-03 04:01:58 +01:00 committed by Polynomialdivision
parent 421324486f
commit d56c5c4e15
14 changed files with 355 additions and 93 deletions

View file

@ -0,0 +1,45 @@
#ifndef DAWN_UTIL_MEMORY
#define DAWN_UTIL_MEMORY
#include <memory.h>
enum dawn_memop
{
DAWN_MALLOC,
DAWN_CALLOC,
DAWN_REALLOC,
DAWN_MEMREG,
DAWN_MEMUNREG,
DAWN_FREE
};
#define DAWN_MEMORY_AUDITING
#ifdef DAWN_MEMORY_AUDITING
#define dawn_malloc(size) dawn_memory_alloc(DAWN_MALLOC, __FILE__, __LINE__, 1, size, NULL)
#define dawn_calloc(nmemb, size) dawn_memory_alloc(DAWN_CALLOC, __FILE__, __LINE__, nmemb, size, NULL)
#define dawn_realloc(ptr, size) dawn_memory_alloc(DAWN_REALLOC, __FILE__, __LINE__, 1, size, ptr)
#define dawn_free(p) dawn_memory_free(DAWN_FREE, __FILE__, __LINE__, p)
#define dawn_regmem(p) dawn_memory_register(DAWN_MEMREG, __FILE__, __LINE__, 0, p)
#define dawn_unregmem(p) dawn_memory_unregister(DAWN_MEMUNREG, __FILE__, __LINE__, p)
#else
#define dawn_malloc(size) malloc(size)
#define dawn_calloc(nmemb, size) calloc(nmemb, size)
#define dawn_realloc(ptr, size) realloc(ptr, size)
#define dawn_free(p) free(p)
#define dawn_regmem(p)
#define dawn_unregmem(p)
#endif
void* dawn_memory_alloc(enum dawn_memop type, char* file, int line, size_t nmemb, size_t size, void *ptr);
void* dawn_memory_register(enum dawn_memop type, char* file, int line, size_t size, void *ptr);
void dawn_memory_free(enum dawn_memop type, char* file, int line, void* ptr);
void dawn_memory_unregister(enum dawn_memop type, char* file, int line, void* ptr);
void dawn_memory_audit();
#endif