是否有一种工具可以让我跟踪每个函数分配了多少内存?例如每当调用我的 add_node
函数时,由 malloc
分配的所有内存与 queue_buffer
中的内存相比,在程序的整个运行时等。
我想剖析大容量内存的使用位置。
最佳答案
我不知道有什么程序可以立即执行此操作,但您可以自己执行此操作。只需将类似这样的内容添加到一些全局头文件中:
#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() 的调用都将被重定向。
关于c - 跟踪每个函数分配了多少内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21669178/