我正在使用Valgrind
该massif
工具来监视发生内存分配的所有代码部分。在这种情况下,我使用这个命令来运行我的程序Valgrind
:
valgrind --tool=massif --vgdb=full --pages-as-heap=yes --detailed-freq=1 --threshold=0.001 --max-snapshots=100 --time-unit=ms ./myprogram
我的问题是,运行程序 30 分钟后,它开始分配更多内存。我想监视代码的哪些部分正在分配内存。我应该注意到这不是内存泄漏,所以我没有使用Memcheck
,而是使用了massif
. 该命令在开始时从内存中获取快照,但之后,我没有内存中的快照。
为了解决这个问题,我使用vgdb
命令按以下方式拍摄详细快照:
vgdb detailed_snapshot
但看起来这个命令正在使用捕获的快照,而不是新的。那么如何在需要时拍摄新快照呢?或者我应该以某种方式释放捕获的快照?