このページでは

Memcheckでメモリリークを検出する

Valgrind のツールスイートの Memcheck ツールを使うと、アプリケーションのメモリ管理に関連する問題を検出できます。このツールは GDB デバッガと一緒に使います。問題が検出されると、アプリケーションが中断され、デバッグできるようになります。

注記: Memcheck は Linux 上でローカルにインストールして実行できます。どのコンピューターからでも、リモート・ホストまたはデバイス上で実行できます。Windows では、Heobヒープ・オブザーバーを使って同様の結果を得ることができる。

Valgrind ツールをダウンロードしてインストールしたら、Qt Creator から Memcheck を使用できます。

アプリケーションのメモリ・リークを検出する:

  1. Projects モードに行き、デバッグビルド構成を選択する。
  2. モードセレクタで、Debug >Memcheck を選択する。

    メンチェック

  3. スタート を選択してアプリケーションを起動する。
  4. アプリケーションを使用して解析する。
  5. ストップ を選択して、解析結果をMemory Issues に表示する。

メモリの問題を表示する

アプリケーションの実行中、Memcheck は以下の処理を行います:

  • メモリのすべての読み取りと書き込みをチェックする。
  • メモリを割り当てたり解放したり、メモリ・ブロックを作成したり削除したりする呼び出 しをインターセプトします。

Memcheck を停止すると、結果を見ることができます。

行を選択すると、メモリ・リークが発生した場所と、その原因を示すスタック・トレースが表示されます。

データを収集する代わりに、オープン を選択して、XML 形式の外部ログファイルをMemcheck ビューにロードします。

行の上でマウスを動かすと、その関数に関する詳細情報が表示されます。

行間を移動するには、前へ または次のページ を選択します。

結果をフィルタするには、フィルター を選択し、ビューに表示するissueのタイプを選択します。メモリ・リーク、初期化されていない値、free() への無効な呼び出し、外部エラーの表示と非表示を切り替えることができます。

Memcheck の使い方の詳細については、Valgrind ドキュメントの「Memcheck の出力の解釈」を参照してください。

How To: Analyze」、「Profile function execution」、「Run Valgrind tools on external applications」、「Specify Valgrind settings for a project」、「Analyzers」、「Valgrind Callgrind」、「Valgrind Memcheck」、「Analyzing Code」も参照してください

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.