我需要在并行代码中使用massif工具运行valgrind,这需要很长时间才能完成。我想定期拍摄快照。
我执行以下操作:
valgrind --tool=massif --massif-out-file=outFile.txt --vgdb=yes ./app在另一个终端中,我使用以下代码运行循环:
vgdb all_snapshot snapshots.txt然而,"snapshots.txt“总是有相同的内容。我尝试使用不同的valgrind选项,比如--time-unit=ms和--time-unit=i。而且,如果我在执行时刻X获得所有快照,然后在时刻X+Y获得所有快照,那么生成的两个文件是相同的。
我做错了什么?
发布于 2021-03-12 17:50:03
massif具有在内存中存储一组快照的逻辑。快照的数量和拍摄它们的时间由各种选项控制,例如--峰值不准确、--最大快照、...
根据应用程序在两个时刻之间的行为,可能会记录新的快照,也可能没有记录。
监视器命令'all_snapshots‘只是将当前的快照保存在内存中。
如果希望强制输出新快照,请使用监视器命令' snapshot‘或'detailed_snapshot’。
https://stackoverflow.com/questions/66585532
复制相似问题