Valgrind 地块组合快照

Valgrind massif combine snapshots

我正在尝试使用 massif 工具分析应用程序。我用这个命令 运行 它:

./valgrind.bin  --tool=massif --stacks=yes --heap=yes --trace-children=yes --vgdb=yes /usr/bin/agl_proxy

该应用程序 运行 存在了很长时间。通常,当应用程序收到中断信号时,它会干净地完成并且 massif 会生成一个包含许多快照的配置文件:

desc: --stacks=yes --heap=yes
cmd: /usr/bin/app
time_unit: i
#-----------
snapshot=0
#-----------
time=0
mem_heap_B=0
mem_heap_extra_B=0
mem_stacks_B=0
heap_tree=empty
#-----------
snapshot=1
#-----------
time=4501979
mem_heap_B=0
mem_heap_extra_B=0
mem_stacks_B=1480
heap_tree=empty

但是,这个特定的应用程序只是转储库存并在没有正确退出的情况下挂起,因此没有正确生成结果文件。当应用程序处于 运行ning 时,我可以使用 vgdb 获取快照。但是它只生成一个快照。

有什么方法可以合并快照吗?我尝试将快照添加到 snapshot=# header 的文件中,但 MassifVisualizer 抱怨格式问题。也许有一个选项可以将它们或一些工具结合起来。

使用 vgdb,您可以要求 massif 使用以下监视器请求转储所有快照:

all_snapshots [<filename>] requests to take all captured snapshots so far and save them in the given <filename> (default massif.vgdb.out).