跟踪每个函数分配的内存量

时间:2014-02-10 04:37:19

标签: c

是否有工具可以跟踪每个功能分配的内存量?例如调用malloc函数时add_node调用的所有内存与queue_buffer等函数调用的整个运行时间内的所有内存。

我想了解大量内存的使用位置。

1 个答案:

答案 0 :(得分:1)

我不知道有任何程序可以随意执行此操作,但您可以自己执行此操作。只需将这样的内容添加到某个全局头文件中:

#ifdef DEBUG
void* __replacement_malloc(size_t bytes, const char* fn_name)
{
        printf("Function %s allocated %lu bytes\n", fn_name, bytes);
        return malloc(bytes);
}
#define malloc(x) __replacement_malloc(x, __func__)
#endif

现在,当您使用“DEBUG”进行编译时,将重定向对malloc()的任何调用。