Valgrind:禁用条件跳转(或整个库)检查

Vit*_*aev 7 c linux valgrind openssl memory-leaks

我正在使用OpenSSL API开发应用程序.众所周知,OpenSSL使用全局变量的miriades,由Valgrind作为错误("条件跳转或移动......"等).因此,Valgrind的输出被共享库中的错误堵塞.这对于调试来说非常不方便,因为每次我得到:

检测到超过X个总错误.我不再报告了.最终错误计数将不准确.去修复你的程序吧!

问题是:

  1. 我可以在Valgrind中禁用派对库(在我的情况下为-lssl-lcrypto)内存检查吗?
  2. 或者我可以只关注"明确丢失"的错误吗?

    谢谢.

VAV*_*VAV 11

添加选项

--undef-value-errors=no 
Run Code Online (Sandbox Code Playgroud)

适合我(隐藏所有"有条件的跳跃或移动取决于未初始化的值").

有关更多信息,请参阅Valgrind的手册页.


alk*_*alk 4

Valgrind 可以配置为抑制库中的错误。

有关详细信息,您可以在这里找到:http://valgrind.org/docs/manual/manual-core.html#manual-core.suppress

从上面链接的网页:

注意:到目前为止,添加抑制的最简单方法是使用核心命令行选项中描述的 --gen-suppressions=yes 选项。这会自动生成抑制。不过,为了获得最佳结果,您可能需要手动编辑 --gen-suppressions=yes 的输出,在这种情况下,建议通读本节。