valgrind massif堆探查器无详细快照视图-如何放大/缩小? >我想在Ubuntu 18 中查看我的C++程序的堆内存使用情况

valgrind massif堆探查器无详细快照视图-如何放大/缩小? >我想在Ubuntu 18 中查看我的C++程序的堆内存使用情况,ubuntu,valgrind,massif,Ubuntu,Valgrind,Massif,我使用以下方法运行它: valgrind--tool=massif--smc check=all./myprogram 我得到了相当大的输出,这是正常的。我使用massif visualizer查看它 我得到了一张漂亮的图表和所有这些。但我想在节目结束时详细看看它的关闭情况。但我似乎无法放大图形视图,而且我看不到可以这样做的选项 manpage()表示: Massif生成了一些详细的快照,这些快照基本上构成了 那棵树。如果你愿意 要以比简单树状视图更舒适的方式获取概览,请切换到 详细的快照选项卡

我使用以下方法运行它:

valgrind--tool=massif--smc check=all./myprogram

我得到了相当大的输出,这是正常的。我使用massif visualizer查看它

我得到了一张漂亮的图表和所有这些。但我想在节目结束时详细看看它的关闭情况。但我似乎无法放大图形视图,而且我看不到可以这样做的选项

manpage()表示:

Massif生成了一些详细的快照,这些快照基本上构成了 那棵树。如果你愿意 要以比简单树状视图更舒适的方式获取概览,请切换到 详细的快照选项卡,并查看可视化为调用图的树。放大、缩小、使用 鸟瞰视图,查看给定快照的组成部分。请注意,函数调用 使用相同的内存成本进行分组,以便轻松找到感兴趣的部分

但我看不到“
切换到详细快照选项卡”
”的选项。。。还有人知道怎么做吗

Ubuntu 18


massif visualizer 0.7

可以使用kcachegrind来可视化内存,而不是massif visualizer 使用valgrind 3.13中出现的新“xtree功能”

以下是valgrind的摘录--帮助:

替代malloc的Valgrind工具的用户选项: --alignment=设置堆分配的最小对齐方式[16] --redzone size=设置之前/之后添加的redzone的最小大小 堆块(字节)。[16] --xtree memory=none | allocs | xtree中的完整配置文件堆内存[none] 并在执行结束时生成报告 无:无配置文件,分配:当前已分配 大小/块,完整:配置文件当前和累积 分配的大小/块和释放的大小/块。 --xtree内存文件=xtree内存报告文件[xtmemory.kcg.%p] 看
更多信息。

谢谢,博士,我试了一下并阅读了文档。但我不太明白如何使用kcachegrind轻松地可视化堆内存。我可以看每一条“线”来看看发生了什么——但这需要几年才能完成!。。。你能详细介绍一下如何随着时间的推移可视化内存,然后“放大”查看具体的增加/减少吗。。。现在加1,虽然我不知道xree:)在你的问题中,你表示“但我想在我的程序结束时详细查看”。为此,您可以使用massif,但还可以添加--xtree memory=full。使用此选项,您将获得一个可以加载到kcachegrind中的xtree内存文件。然后,您可以使用kcachegrind的图形视图来扫描关闭时仍有大量内存分配的函数调用序列。如果要搜索分配了大量已释放内存的调用序列,请切换到kcachegrind中的“total allocated”事件。您可能还想查看以下位置的fosdem演示文稿/幻灯片。有关以kcachegrind格式提供massif详细快照或峰值快照的问题:此类功能在massif中不可用(尚未提供?)。非常感谢您提供的信息:)
  user options for Valgrind tools that replace malloc:
    --alignment=<number>      set minimum alignment of heap allocations [16]
    --redzone-size=<number>   set minimum size of redzones added before/after
                              heap blocks (in bytes). [16]
    --xtree-memory=none|allocs|full   profile heap memory in an xtree [none]
                              and produces a report at the end of the execution
                              none: no profiling, allocs: current allocated
                              size/blocks, full: profile current and cumulative
                              allocated size/blocks and freed size/blocks.
    --xtree-memory-file=<file>   xtree memory report file [xtmemory.kcg.%p]