5

我想通过我正在使用的库抑制 Valgrind 报告一些“肯定丢失”的内存。我已经尝试过valgrind --gen-suppressions=yes ./a,但它只提示错误,例如“条件跳转或移动取决于未初始化的值”。

有没有办法为直接的内存泄漏生成抑制?如果没有,手写很难吗?Valgrind 的联机帮助页似乎不鼓励它,至少对于错误而言。

4

4 回答 4

2

要提示未生成错误的泄漏,您必须运行

valgrind --leak-check=full --gen-suppressions=yes ./a 
于 2013-06-18T20:44:31.157 回答
1

--gen-suppressions=all使用and选项运行 valgrind --log-file=memcheck.log,然后手动将记录的抑制复制/粘贴到抑制文件中。

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
于 2018-02-11T11:08:30.810 回答
0

有一个页面介绍如何根据您的错误生成这样的文件https://wiki.wxwidgets.org/Valgrind_Suppression_File_Howto

它并不完美,但你可以从它开始

于 2021-03-17T13:07:15.207 回答
-2

您可以编写自己的抑制文件(但似乎并不明显):

--suppressions=<filename> [default: $PREFIX/lib/valgrind/default.supp]

如果问题是禁用整个库,请参阅

Valgrind 的手册页

于 2013-06-18T20:51:30.680 回答