Valgrind Memcheck
Valgrindの設定は、すべてのプロジェクトに共通してグローバルに設定するか、各プロジェクトの実行設定で個別に設定します。
Valgrind のグローバル設定を行うには、[Preferences ] > [Analyzer] を選択します。Memcheck の設定は、[Memcheck Memory Analysis Options] で行います。

「Extra Memcheck arguments 」で、実行ファイルを起動するための追加引数を指定します。
スタックトレースの長さの設定
スタックトレースは、非常に長くなり、分かりにくくなる場合があります。そのため、下から上に向かって読むと理解しやすくなります。スタックトレースの長さが不十分、あるいは長すぎる場合は、[Preferences ] > [Analyzer ] を選択し、[Backtrace frame count ] フィールドでスタックトレースの長さを定義してください。
初期化されていないメモリの発生源の追跡
Memcheckは、初期化されていない値の使用についても報告します。最も一般的なのは、「Conditional jump or move depends on uninitialised value(s). 」というメッセージです。これらのエラーの根本原因を特定するために、Memcheckは初期化されていないメモリの発生源を追跡します。「Track origins of uninitialized memory 」のチェックを外すと、Memcheckの実行速度が向上します。
概要の表示
Memcheckは、クライアントアプリケーションの終了時にメモリリークを検索します。発生したリークの量を表示するには、[Check for leaks on finish ]フィールドで[Summary Only ]を選択します。各リークの詳細も表示するには、[Full]を選択します。
到達可能ブロックおよび間接的に失われたブロックの表示
到達可能なブロックとは、ポインタまたはポインタの連鎖によって参照されており、アプリケーションが終了する前に解放された可能性があるブロックです。間接的に失われたブロックは、それらを参照しているすべてのブロック自体が失われているため、失われたものとみなされます。たとえば、失われたルートノードの子ノードはすべて間接的に失われたものとみなされます。
デフォルトでは、Memcheckは到達可能ブロックおよび間接的に失われたブロックを報告しません。これらを報告させるには、Show reachable and indirectly lost blocks を選択してください。
エラーの抑制
Memcheckは、OSにプリインストールされているCライブラリなどのシステムライブラリ内の数多くの問題を検出します。これらの問題は簡単に修正できないため、抑制したい場合があります。Valgrindは起動時に、抑制すべきエラーのリストを読み込みます。デフォルトの抑制ファイルは、システムのビルド時に./configure スクリプトによって作成されます。
プロジェクトの一部に修正できないエラーがあり、それらを通知されたくない場合は、独自の抑制ファイルを作成できます。「MemCheck Memory Analysis 」ダイアログで「Add 」を選択し、抑制ファイルを追加してください。
抑制ファイルの作成に関する詳細については、Valgrind ドキュメントの「エラーの抑制」を参照してください。
「Memcheck によるメモリリークの検出」、「関数実行のプロファイリング」、「外部アプリケーションでの Valgrind ツールの実行」、「プロジェクトに対する Valgrind 設定の指定」、および「Valgrind Callgrind」も参照してください 。
Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.