或者最好是所有这些而不仅仅是我的代码?我的程序使用Gtk,Loudmouth和其他一些东西,这两个(以及它们后面的一些,libgcrypto,libssl)本身导致了很多错误,我无法检测到自己的错误.是否有可能让valgrind忽略比我自己的代码更深层次的东西?
Valgrind将使用该track-origins=yes选项告诉您未初始化值的来源.
我试图压制这些警告,但问题是基于未初始化值的数据可以传播到任何地方,在其他地方也会发出警告.
解决方案将取决于未初始化数据的来源.我该怎么做?可能吗?似乎抑制文件只过滤堆栈跟踪.
我想要的原因是,OpenSSL通过故意使用未初始化的值来增强随机性,我想用valgrind测试发布版本(所以-DPURIFY不是一个选项).
我想通过我正在使用的库抑制 Valgrind 报告一些“绝对丢失”的内存。我试过了,valgrind --gen-suppressions=yes ./a但它只提示错误,例如“条件跳转或移动取决于未初始化的值”。
有没有办法抑制直接内存泄漏?如果没有,手写它们很难吗?Valgrind 的联机帮助页似乎不鼓励它,至少对于错误。