在Valgrind中抑制潜在的内存泄漏

时间:2012-12-03 22:27:08

标签: valgrind

我从Valgrind那里得到以下日志:

MPK ==5263== 4 bytes in 1 blocks are still reachable in loss record 1 of 84
==5263==    at 0x402CE68: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==5263==    by 0x43D9F4B: ??? (in /lib/i386-linux-gnu/libcrypto.so.1.0.0)
==5263==    by 0x43DA5DB: CRYPTO_malloc (in /lib/i386-linux-gnu/libcrypto.so.1.0.0)
==5263==    by 0x44449A5: ??? (in /lib/i386-linux-gnu/libcrypto.so.1.0.0)
==5263==    by 0x44451EE: ENGINE_add (in /lib/i386-linux-gnu/libcrypto.so.1.0.0)
==5263==    by 0x444A776: ENGINE_load_dynamic (in /lib/i386-linux-gnu/libcrypto.so.1.0.0)

我很确定我的代码或libcurl中没有任何问题,使用libcrypto,所以我想要禁止这些消息。

documentation我可以找到任何合适的抑制类型。

应该在抑制文件中写什么?

1 个答案:

答案 0 :(得分:4)

您可以通过使用--gen-suppressions=yes运行相同的命令来生成抑制块。这是了解如何使用valgrind抑制给定错误的最简单方法。只是让它告诉你你应该包括什么作为抑制。

valgrind生成抑制后,您可以将其放入文本文件中。

再次使用--suppressions=<filename>参数运行valgrind指定抑制文件,并且中断错误/警告将会消失。