Jer*_*rks 2 c linux malloc free hook
我想跟踪大型应用程序当前分配的内存量.
我发现我可以在malloc/free/realloc周围安装钩子以拦截内存分配调用:
http://man7.org/linux/man-pages/man3/malloc_hook.3.html
所以我要跟踪的是分配的总字节数 - 释放的总字节数.
现在问题是free只接受指针而不是大小.
In可以在我的malloc钩子中创建我自己的map或hashmap,它跟踪为该指针分配了多少内存,但这会导致相当多的开销.
有没有办法(即使它有点像黑客)在调用free时使用ptr的大小(使用默认的g ++ malloc)获得Linux(64位)的大小?
linux man malloc_usable_size
malloc_usable_size()返回动态分配的缓冲区ptr中可用的字节数,该缓冲区可能大于请求的大小(但如果请求成功,则保证至少同样大).通常,您应该存储请求的分配大小,而不是使用此函数.