メモ代わり。てきとーに。 いや、ですからてきとーですって。 2年前ぐらいにPythonあたりでメールくれた方、ごめんなさい。メール紛失してしまい無視した形になってしまいました。。。

2008年5月16日金曜日

[debian][valgrind] debianのvalgrind

世の中、debian/ssl関連で大騒ぎっぽい。
それはおいといて、debian-etch でvalgrindを実行すると、
libpthread-0.10.soの中でメモリリークのエラーが出る。
(注:多分、自分の環境だけ。他の人は多分出ない、に違いない)

まぁいいやっていうことでほっといたんだけど、無視するようにしてみた。
valgrindでチェック対象からはずすには--suppressionsオプションを使用する。


$ valgrind --suppressions=suppファイル名 ターゲット
 

なんてなふうに指定する。

suppファイルは、/usr/lib/valgrind/*以下にいろいろあるのだが、
いい感じのものがデフォルトで入っていない(この時点でなんかおかしい・・・?)

ということで、/usr/lib/valgrind/*のファイルを参考にsuppファイルを作成した。
以下suppファイルの内容。

{
Debian libpthread hack - pthread_initialize_minimal
Memcheck:Leak
fun:calloc
obj:/lib/ld-2.3.*.so
obj:/lib/ld-2.3.*.so
fun:_dl_allocate_tls
fun:__pthread_initialize_minimal
}
{
Debian libpthread hack - pthread_initialize_minimal2
Memcheck:Leak
fun:memalign
obj:/lib/ld-2.3.*.so
fun:_dl_allocate_tls
fun:__pthread_initialize_minimal
}
 


あとは、~/.valgrindrcに

--suppressions=上記で作成したsuppファイル名
 

を指定して完了。
これで余計なエラーが出なくなった。


--
追記
ちなみにpthreadのメモリリークエラーが出てしまうコードは以下のとおり。

#include <stdio.h>

int
main()
{
return 0;
}
 

・・・。
.

0 コメント: