diff options
author | klto <klto@bb4c1ae6-6eb5-4d93-a66e-2307d6765a9c> | 2010-10-28 07:33:28 +0000 |
---|---|---|
committer | klto <klto@bb4c1ae6-6eb5-4d93-a66e-2307d6765a9c> | 2010-10-28 07:33:28 +0000 |
commit | 2f7a7f07846aa498b4b79a83bbe425d7aba73f03 (patch) | |
tree | 18c49cd2e8f09c6df38ceab570f72dd52dd51773 /memdebug/memdebug.h | |
parent | b29885c60c5b8f1b204e78902df728121b5e7cf2 (diff) | |
parent | 098c2b10024f57666e381889438e5250ef882a44 (diff) |
Merge branch 'master' into local-svn
git-svn-id: https://parma.zhaw.ch/svn/csnippets@2 bb4c1ae6-6eb5-4d93-a66e-2307d6765a9c
Diffstat (limited to 'memdebug/memdebug.h')
-rw-r--r-- | memdebug/memdebug.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/memdebug/memdebug.h b/memdebug/memdebug.h new file mode 100644 index 0000000..7a816c0 --- /dev/null +++ b/memdebug/memdebug.h @@ -0,0 +1,42 @@ +#ifndef _MEMDEBUG_H_ +#define _MEMDEBUG_H_ + +#include <stdlib.h> + +#ifdef MEMDEBUG_TRACE +# define memdebug_trace(fmt, args...) \ + ({ \ + fprintf(stderr, "*** " fmt " ***\n", ##args); \ + fflush(stderr); \ + }) +#else +# define memdebug_trace(fmt, args...) +#endif + +struct memdebug_heap_item { + struct memdebug_heap_item *next; + + void *addr; + size_t size; + + const char *func; + const char *file; + unsigned int line; + + const char *freed_func; + const char *freed_file; + unsigned int freed_line; +}; + +#define memdebug_malloc(size) \ + __memdebug_malloc(size, __func__, __FILE__, __LINE__) +#define memdebug_free(ptr) \ + __memdebug_free(ptr, __func__, __FILE__, __LINE__) + +void *__memdebug_malloc(size_t size, const char *func, + const char *file, const unsigned int line); +void __memdebug_free(void *ptr, const char *func, + const char *file, const unsigned int line); +void memdebug_report(int report_all); + +#endif /* _MEMDEBUG_H_ */ |