2014-02-10 52 views
1

有沒有一種工具可以讓我跟蹤每個功能分配多少內存?例如所有由malloc分配的內存在我的add_node函數被調用時調用,而在queue_buffer等等中調用的函數等等,用於整個程序運行時。跟蹤每個功能分配多少內存

我想分析使用大量內存的位置。

回答

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()的調用將被重定向編譯。

+0

是的,我想我還得維護一個列表,如果我想加上每個函數的內存總和,我只是希望類似的東西已經存在。 – user1273684