24ddc71998-03-28Henrik Grubbström (Grubba) /*
8fb1e11998-04-05Fredrik Hübinette (Hubbe)  * $Id: dmalloc.h,v 1.6 1998/04/06 04:20:42 hubbe Exp $
24ddc71998-03-28Henrik Grubbström (Grubba)  */
61e9a01998-01-25Fredrik Hübinette (Hubbe) #ifdef DEBUG_MALLOC
2043ba1998-02-10Fredrik Hübinette (Hubbe) struct memhdr; void dump_memhdr_locations(struct memhdr *from, struct memhdr *notfrom); struct memhdr *alloc_memhdr(void); void free_memhdr(struct memhdr *mh); void add_marks_to_memhdr(struct memhdr *to,void *ptr); void low_add_marks_to_memhdr(struct memhdr *to, struct memhdr *from);
61e9a01998-01-25Fredrik Hübinette (Hubbe) extern int verbose_debug_malloc; extern int verbose_debug_exit; extern void *debug_malloc(size_t, const char *, int);
24dd881998-01-27Fredrik Hübinette (Hubbe) extern char *debug_xalloc(long);
61e9a01998-01-25Fredrik Hübinette (Hubbe) extern void *debug_calloc(size_t, size_t, const char *, int); extern void *debug_realloc(void *, size_t, const char *, int); extern void debug_free(void *, const char *, int); extern char *debug_strdup(const char *, const char *, int); void *debug_malloc_update_location(void *,const char *, int); #define malloc(x) debug_malloc((x), __FILE__, __LINE__) #define calloc(x, y) debug_calloc((x), (y), __FILE__, __LINE__) #define realloc(x, y) debug_realloc((x), (y), __FILE__, __LINE__) #define free(x) debug_free((x), __FILE__, __LINE__) #define strdup(x) debug_strdup((x), __FILE__, __LINE__) #define DO_IF_DMALLOC(X) X
3c0c281998-01-26Fredrik Hübinette (Hubbe) #define debug_malloc_touch(X) debug_malloc_update_location((X),__FILE__,__LINE__) #define debug_malloc_pass(X) debug_malloc_update_location((X),__FILE__,__LINE__)
24dd881998-01-27Fredrik Hübinette (Hubbe) #define xalloc(X) ((char *)debug_malloc_touch(debug_xalloc(X)))
8fb1e11998-04-05Fredrik Hübinette (Hubbe) void debug_malloc_dump_references(void *x);
61e9a01998-01-25Fredrik Hübinette (Hubbe) #else
8fb1e11998-04-05Fredrik Hübinette (Hubbe) #define debug_malloc_dump_references(X)
24dd881998-01-27Fredrik Hübinette (Hubbe) #define xalloc debug_xalloc
3c0c281998-01-26Fredrik Hübinette (Hubbe) #define dbm_main main
61e9a01998-01-25Fredrik Hübinette (Hubbe) #define DO_IF_DMALLOC(X) #define debug_malloc_update_location(X,Y,Z) (X)
3c0c281998-01-26Fredrik Hübinette (Hubbe) #define debug_malloc_touch(X) #define debug_malloc_pass(X) (X)
61e9a01998-01-25Fredrik Hübinette (Hubbe) #endif