堆释放分析

Heap deallocation profiling

valgrind 的 massif 工具能够在我的代码(包括调用堆栈)中为我提供 已分配 .

数据的点

例如

99.97% (3,775,782,255B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
->51.05% (1,928,081,040B) 0x37E712: MyFunc() (my_file.h:49)
| ->51.05% (1,928,081,040B) 0x37E15A: AnotherFunc() (my_file.cpp:213)
...

不是获取 malloc/new 的这些统计信息,是否可以获取 free/delete 的这些统计信息?

即是否可以跟踪重新分配?

您可以使用例如跟踪释放memcheck 和选项 --xtree-memory=full.

参见例如https://www.valgrind.org/docs/manual/manual-core.html#opt.xtree-memoryhttps://www.valgrind.org/docs/manual/manual-core.html#manual-core.xtree 获取更多信息。