1

デバッグが必要な gnutls を使用するネットワーク関連のアプリがありますが、初期化されていないメモリ エラーがアプリケーション全体に急増し、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
}

これは何も抑制していないようです。特定のライブラリからのエラーの拡散を防止して、そのような大きな抑制ファイルを作成する必要がないようにする方法はありますか?

4

1 に答える 1

0

ライブラリを独自のクラスでラップし、try catch ブロック内ですべてを実行します。エラーを無視するか、メソッド呼び出しを再試行するかを選択できます。

于 2013-03-10T00:41:47.790 に答える