You can use it as if you were other (1) replacing (2) malloc() subsystems.
In the first example, malloc() usually replaced by:
#define malloc(n) GC_malloc(n) #define calloc(m,n) GC_malloc((m)*(n)) ... #define free(n) GC_free(n)
You then link to the new malloc () library (statically or dynamically).
In the second example, LD_PRELOAD used to intercept calls to malloc() / free() .
I recommend that you make the first option, create a static / shared object named bsdmalloc and associate it with it as desired.
You also have the option of simply creating ball malloc routines with your code, like any other module (a rough example, including only stdlib, where malloc is prototyped):
#include <stdlib.h> #define malloc(n) BSD_malloc(n) void *BSD_malloc(int n) { return NULL; } int main(void) { char *ret; ret = (char *) malloc(1024); return ret == NULL ? 1 : 0; }
For a more systematic approach, I recommend switching to the general route of the object.
Tim post
source share