我有两个valgrind报告,我想要区分它们。随着每行中的pid,diff显然发现一切都不同。如果我可以抑制输出中的pid,我会更容易区分。有没有办法在valgrind输出中抑制进程ID?
背景:
我的程序是一个模拟器,它意味着永远运行(直到手动杀死)。在初始化之后,我可以为它提供网络数据包并处理它们。使用valgrind,我缩小并修复了数据包处理过程中发生的内存泄漏。但是,我仍然有一个非常小的泄漏。我试图弄清楚是否有办法在运行时重置valgrind中的内存泄漏计数。如果我能=>在发送一个数据包之后,我将内存错误归零,并且只会报告在后续数据包通过时发生的那些错误。但我无法弄清楚如何做到这一点。
所以,我想到了两个valgrind报告的差异:一个包含1个包,另一个包含l10个包。这应该可以帮助我缩小罪魁祸首。
如果有更好的替代解决方案而不使用差异,请告诉我!
答案 0 :(得分:1)
只需使用shell命令在初始== nnnn ==:
之后剪切所有内容cat valgrind.out | cut -f2- -d' ' > valgrind.cut
答案 1 :(得分:0)
我还没有看到一个阻止pid被打印的选项,但是我正在寻找一种方法来增加valgrind运行时间的时间限制,所以我可能错过了它。
那就是说,每一行以" == pid =="开头。所以你可以制作一个prog /脚本来简单地去除那个部分,然后在每次运行剩下的内容上运行diff。 Valgrind没有使用" ="在其他任何地方,所以像这样(在c ++中)应该工作:
AND
现在我认为这是你最好的选择。