0

Libgcryptでいくつかのテストを行っていますが、valgrindを使用してメモリ使用量を確認すると、終了時に3,200バイトが使用されています。

使ってみました

valgrind --leak-check=full --track-origins=yes --show-reachable=yes ./my_program

しかし、valgrind valgrindは、私のコードからこの行についてのみ文句を言います。

version = gcry_check_version("1.5.0");

Libgcryptの内部機能についてのvalgrind。

私のテストコードはここにあります:http : //www.tiago.eti.br/storage/post2.cそして私はDebiansidリポジトリからLibgcrypt1.5.0を使用しています

これはLibgcryptのバグですか、それとも何か問題がありますか?

4

1 に答える 1

0

すべてのライブラリがすべてのリソースをクリーンアップすることに完全に注意を払っているわけではありません。一部の「永続的な」割り当てが一度だけ発生し、プログラムの最後まで使用される限り (バージョン文字列など)、ライブラリがこれを割り当て解除することはまったくありません。

これがサードパーティのライブラリを扱う残念な現実であり、気になる場合は Valgrind 用の抑制ファイルを で作成する必要があります--gen-suppressions=all

実際に割り当てが失われたことはないため、「まだ到達可能な」メモリは単なる「怠惰」であり、実際にはリークではないことに注意してください。リークは真のプログラミング エラーと見なす必要がありますが、まだ到達可能で、割り当て解除されていないメモリは、許されるショートカットである場合とそうでない場合があります。

于 2012-07-25T23:40:34.657 に答える