Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

2.13. Valgrind

Valgrind はアプリケーションのパフォーマンスを改善するため検出とプロファイリングを行うツールを提供します。メモリーやスレッド関連のエラーの他、ヒープ、スタック、アレイのオーバーランなどを検出できるため、アプリケーションコード内のエラーを簡単に見つけ出して修正することができるようになります。また、キャッシュやヒープ、分岐予測のプロファイリングを行い、アプリケーションの速度を高めメモリーの使用量を最小限に抑える可能性のある要因を特定することもできます。
Valgrind はアプリケーションをシンセティック CPU で実行して既存アプリケーションコードのインストルメントを行いそのアプリケーションを分析します。次に、アプリケーション実行に関連する各プロセスをユーザー指定のファイル、ファイル記述子、またはネットワークソケットに明確に識別するコメントを出力します。インストルメント化のレベルは、使用している Valgrind ツールとその設定によって異なりますが、インストルメントしたコードの実行は通常の実行より 4 倍から 50 倍の時間がかかるので注意してください。
Valgrind は再コンパイルせずにそのままアプリケーション上で使用できます。しかし、Valgrind はコード内の問題の特定にデバッグ情報を使うので、デバッグ情報を有効にしてアプリケーションおよびサポートライブラリーをコンパイルしていない場合は、再コンパイルしてデバッグ情報を含ませることを推奨しています。
Valgrind はデバッグ効率を高めるため GNU Project Debugger (gdb) を統合しています。
Valgrind および付属のツールはメモリーのプロファイルを行う場合に便利です。システムメモリーのプロファイルに Valgrind を使用する方法については、「Valgrind を使用したアプリケーションのメモリー使用量のプロファイリング」 を参照してください。
Valgrind に関する詳細は、Red Hat Enterprise Linux 7 開発者ガイドを参照してください。
Valgrind の使い方については man ページをご覧ください。
$ man valgrind
valgrind パッケージのインストール時には、付属のドキュメントは /usr/share/doc/valgrind-version にもあります。