我有一个与网络相关的应用程序,它使用我需要调试的 gnutl,但是一些未初始化的内存错误导致整个应用程序的扩散,这使得 valgrind 几乎无用。
使用 --track-origins=yes 清楚地表明错误源自 gnutls:
==1369== Uninitialised value was created by a stack allocation
==1369== at 0x5FE39B7: ??? (in /usr/local/lib/libgnutls.so.28.15.0)
我尝试使用 --gen-suppressions=all 手动抑制这些错误,但似乎我最终会在构建于 gnutls 之上的大部分应用程序中抑制错误。
我也试过:
{
gnutls
Memcheck:Cond
obj:/usr/local/lib/libgnutls.so.28.15.0
}
这似乎根本没有压制任何东西。有什么方法可以防止来自特定库的错误扩散,所以我不必拥有这么大的抑制文件?