程序执行时如何查看Valgrind Massif输出(或其他堆分析器)?

时间:2018-10-10 18:10:22

标签: c++ linux heap-memory profiler massif

在LINUX中使用Valgrind Massif时,我尝试实时查看massif.out.pid文件,但是在Massif完成执行后会生成此文件。我想在代码中放置断点,以观察某些指令对堆产生的影响,因为只有几个兴趣点。我知道我可以重写一些代码来管理此问题,但这意味着以一定的方式影响主题代码,因为它们不是我想要执行的众多程序。有没有一种方法可以在监视探查器同时监视堆的同时监视代码中的点,以便区分执行点?

2 个答案:

答案 0 :(得分:0)

显然,Linux中有一个可以提供实时数据的工具,我还没有尝试过,但是在其他Google搜索之后找到了它。它叫做heaptrack,显然它可以在程序运行时跟踪堆:

http://milianw.de/blog/heaptrack-a-heap-memory-profiler-for-linux

答案 1 :(得分:0)

在要查看内存堆使用情况的代码中写入sleep(0.5)。 然后使用heaptrack执行应用程序。 然后使用heaptrack_gui app.heaptrack.gz打开结果文件

转到消耗的水龙头,并按时间线检查内存使用情况。