调试程序测试malloc 跟 free是否配对
调试程序测试malloc 和 free是否配对
#include <stdio.h> #include <stdlib.h> void * debug_malloc(size_t size, const char *file, int line, const char *func) { void *p; p = malloc(size); printf("%s:%d:%s:malloc(%ld): p=0x%lx\n", file, line, func, size, (unsigned long)p); return p; } #define malloc(s) debug_malloc(s, __FILE__, __LINE__, __func__)
#define free(p) do { \ printf("%s:%d:%s:free(0x%lx)\n", __FILE__, __LINE__, \ __func__, (unsigned long)p); \ free(p); \ } while (0) intmain(int argc, char *argv[]) { char *p; p = malloc(1024); free(p); return 0; }
[root@localhost test]# gcc mallo_free.c
[root@localhost test]# ./a.out
mallo_free.c:19:main:malloc(1024): p=0x2575010
mallo_free.c:20:main:free(0x2575010)