我想要压制Valgrind报告我正在使用的库中一些“绝对丢失”的内存。我尝试了valgrind --gen-suppressions=yes ./a
,但它只提示错误,例如“条件跳转或移动取决于未初始化的值”。
有没有办法为直接内存泄漏产生抑制?如果没有,难以手工编写吗? Valgrind的手册似乎不鼓励它,至少是因为错误。
答案 0 :(得分:2)
要提示您没有产生错误的泄漏,您必须运行
valgrind --leak-check=full --gen-suppressions=yes ./a
答案 1 :(得分:0)
使用--gen-suppressions=all
和--log-file=memcheck.log
选项运行valgrind,并手动将记录的抑制值复制/粘贴到抑制文件中。
valgrind --leak-check=full --gen-suppressions=all --log-file=memcheck.log ./a
如果您发现输出与应用程序输出混合,则将valigrind输出重定向到单独的文件描述符:--log-fd=9 9>>memcheck.log
valgrind --leak-check=full --gen-suppressions=all --log-fd=9 ./a 9>>memcheck.log
答案 2 :(得分:0)
有一个页面介绍了如何根据错误生成此类文件 https://wiki.wxwidgets.org/Valgrind_Suppression_File_Howto
它并不完美,但你可以从它开始
答案 3 :(得分:-2)
你可以自己write a suppression file(但这似乎并不明显):
--suppressions=<filename> [default: $PREFIX/lib/valgrind/default.supp]
如果问题是要停用整个库,请参阅this。
Valgrind的man page。