C(++)言語: valgrindの使い方

Kazuki Ohta, 2006/05/20



メモリ周りのバグをチェックする為のツールValgrindの使い方をまとめた。

Valgrindの対応プラットフォームは今の所Linuxのみとなっている。ここに有る情報は全て2006/04/28現在のものであり、古くなっている可能性が高いので一度公式のドキュメントに目を通した上で見て頂きたい。

また、2006/11/14発売の「Binary Hacks」にはvalgrindの使用方法についての解説がある。おそらくvalgrindについて書かれた唯一の日本語書籍である。こちらも是非参考にして頂きたい。

高林 哲 (著), 鵜飼 文敏 (著), 佐藤 祐介 (著),
浜地 慎一郎 (著), 首藤 一幸 (著)

(0') 使用環境

ubuntu% uname -a
Linux ubuntu 2.6.12-10-386 #1 Sat Mar 11 16:13:17 UTC 2006 i686 GNU/Linux
ubuntu% valgrind --version
valgrind-3.0.1

(0) 目次

まとめ

valgrindの使い方とエラーメッセージを整理してみた。「valgrind --leak-check=full command」というコマンドラインをよく用いる。これによりメモリ周りのバグを検出出来る。

--tool=cachegrindではプログラム実行時のキャッシュミス率を測定する事が出来る。cg_annotateを使用すると、その結果からボトルネックになっている部分を探す事が出来る。

また--tool=massifを指定するとヒーププロファイリングを行いメモリ使用量をPostScript形式で可視化する事ができる。

便利なオプションとして--track-fds=yes(ファイルディスクリプタの閉じ忘れを検出)や、--trace-children=yes(子プロセスまでトレース)等もあるので活用していただきたい。

[ return ]