用上面的方法可以记录free的位置和参数,如果要记录malloc的位置,稍微复杂一点
C/C++ code
#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 { ......
阅读全文