所以我试图查看我在Ubuntu 18中c ++程序的堆内存使用情况
我已经使用它运行了它:
valgrind --tool=massif --smc-check=all ./myprogram
我得到了很大的输出,没关系。我使用massif-visualizer进行查看。
我得到一个漂亮的图形。但我想在程序结尾处详细查看它关闭的效果。但是我似乎无法放大图形视图,并且看不到有这样做的选择。
手册页(here)表示:
Massif生成一些详细的快照,这些快照基本上可以构成 那个树。如果你想 要以比简单树状视图更舒适的方式获得概览,请切换到 详细的快照选项卡,并看到可视化为调用图的树。放大,缩小,使用 鸟瞰并查看是什么有助于给定快照。注意函数调用 具有相同存储成本的存储分组,以轻松找到有趣的部分。
但是我看不到“ switch over to the detailed snapshot tab
”的选项...还有其他人知道该怎么做吗?
Ubuntu 18
massif-visualizer 0.7
答案 0 :(得分:1)
您可以使用kcachegrind代替massif visualiser来可视化内存 使用valgrind 3.13中出现的新“ xtree功能”。
以下是valgrind --help的摘录:
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]
请参见http://www.valgrind.org/docs/manual/manual-core.html#manual-core.xtree 有关更多信息。