3.7.3. Valgrind

Valgrind は、アプリケーションのパフォーマンスと正確性の改善に役立つ数多くの検出およびプロファイリングツールを提供します。これらのツールは、ヒープ、スタック、アレイのオーバーランに加えて、メモリおよびスレッド関連のエラーを検出するので、アプリケーションコード内のエラーの特定と修正が容易になります。また、キャッシュやヒープ、分岐予測のプロファイリングを行い、アプリケーション速度を高め、アプリケーションのメモリ使用量を最小化できる可能性のある要素を特定することもできます。
Valgrind は、アプリケーションを統合 CPU 上で実行し、既存のアプリケーションコードを実行中にインストルメント化することでアプリケーションを分析します。その後に「コメント」を付けることで、アプリケーション実行に関わった各プロセスをユーザー指定のファイル記述子、ファイル、ネットワークソケットに対して明確に識別します。インストルメント化のレベルは、使用している Valgrind ツールとその設定によって異なりますが、インストルメント化されたコードの実行は通常のコードの 4-50 倍の時間がかかることに留意してください。
Valgrind は、再コンパイルせずにそのままアプリケーション上で使用できます。しかし、Valgrind はコード内の問題の特定にデバッグ情報を使うので、アプリケーションおよびサポートライブラリが有効なデバッグ情報でコンパイルされていない場合は、この情報を含めるように再コンパイルすることが強く推奨されます。
Red Hat Enterprise Linux 6.4 では、Valgrind は gdb (GNU Project Debugger) と統合してデバッグ効率を高めます。
Valgrind に関する詳細は 『開発者ガイド』 を参照してください。これは http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/ から入手できます。または、valgrind インストール時に man valgrind コマンドを使用してください。付随資料は以下の場所にもあります。
  • /usr/share/doc/valgrind-<version>/valgrind_manual.pdf
  • /usr/share/doc/valgrind-<version>/html/index.html
Valgrind を使ってシステムメモリをプロファイリングする方法については、「Valgrind を使ったメモリ使用量のプロファイリング」 を参照してください。