首页 > 解决方案 > valgrind 生成非常大的 xtree

问题描述

valgrind 3.13 支持 xtree http://valgrind.org/docs/manual/dist.news.html

我用它和地块

 valgrind --tool=massif --xtree-memory=full --xtree-memory-file=xtmemory.ms.%p 

然后它生成了一个16G的文件。Massif Visualizer 无法加载它。使用 xtree-memory 的最佳实践是什么

标签: valgrindmassif

解决方案


massif 报告包含非详细快照和一些详细快照。详细快照仅显示分配的内存。低于 massif 阈值的堆栈跟踪将被重新组合在一起(即没有给出低于阈值的堆栈跟踪的详细信息)。

使用 --xtree-memory=full 请求的 xtree 包含 6 个不同的详细快照,给出当前分配的字节/块、总分配的字节/块、总释放的字节/块。此 xtree 报告没有阈值过滤,因此如果您的应用程序有很多堆栈跟踪正在执行一小部分分配或空闲操作,那么您在地块 xtree 报告中将拥有比快照中更多的数据。

与其对 --xtree-memory-file 使用 .ms 格式,不如使用 .kcg 格式,并使用 kcachegrind 检查它:kcachegrind 格式更有效地存储大量堆栈跟踪。

有关更多背景信息,请参阅http://www.valgrind.org/docs/manual/manual-core.html#manual-core.xtree 。


推荐阅读