Posted at

valgrindで不要なエラーを抑制する

More than 5 years have passed since last update.

valgrindを実行すると、空のmain関数でも以下のようなエラーが報告される場合があるが、リンクしてるライブラリ内でのエラーなので無視したい。

==12059== ERROR SUMMARY: 7 errors from 7 contexts (suppressed: 0 from 0)

==12059==
==12059== 1 errors in context 1 of 7:
==12059== Conditional jump or move depends on uninitialised value(s)
==12059== at 0x400AF37: (within /lib/ld-2.11.3.so)
==12059== by 0x40038C3: (within /lib/ld-2.11.3.so)
==12059== by 0x4014A76: (within /lib/ld-2.11.3.so)
==12059== by 0x4001422: (within /lib/ld-2.11.3.so)
==12059== by 0x4000AF7: (within /lib/ld-2.11.3.so)
==12059== by 0x0: ???
==12059== by 0x7FF000916: ???


対応方法

通常は単にvalgrindパッケージをアップデートするだけでよい。

apt-get install valgrind

それでもだめなら以下をみてsuppファイルを書く。

http://valgrind.org/docs/manual/manual-core.html#manual-core.suppress


説明

valgrindはsuppファイルを記述することで、特定の条件のエラーを抑制することができる。

debianパッケージから入れたvalgrindであれば、ldlibc等の主要なものに関しては/usr/lib/valgrind/以下であらかじめ抑制されるようになっている。

この設定はオブジェクトファイルのバージョンに依存しているので、システムをアップデートしたりするとはずれてしまう場合がある。

参考: http://d.hatena.ne.jp/pyopyopyo/20070104/p1