次の方法で共有


例 10: プロセス内のヒープ メモリ リークを検出する

この例では、Windows 用 Microsoft デバッグ ツールに含まれるツールである GFlags とユーザー モード ダンプ ヒープ (UMDH、umdh.exe) を使用します。

notepad.exeのヒープ メモリのリークを検出するには

  1. notepad.exe イメージ ファイルの ユーザー モード スタック トレース データベースの作成 (ust) フラグを設定します。

    次のコマンドでは、GFlags を使用して 、ユーザー モード スタック トレース データベースの作成 フラグを設定します。 /i パラメーターを使用して、イメージ ファイルとフラグの ust 省略形を識別します。

    gflags /i Notepad.exe +ust 
    

    このコマンドの結果として、メモ帳プロセスのすべての新しいインスタンスに対してユーザー モード スタック トレースが作成されます。

  2. シンボル ファイルのパスを設定します。

    次のコマンドは、シンボル ファイルのディレクトリへのパスを格納する環境変数を作成します。

    set _NT_SYMBOL_PATH=C:\Windows\symbols
    
  3. メモ帳を起動します。

  4. メモ帳プロセスのプロセス識別子 (PID) を見つけます。

    実行中のプロセスの PID は、Windows XP Professional および Windows Server 2003 オペレーティング システムに含まれるツールであるタスク マネージャーまたはタスクリスト (tasklist.exe) から見つけることができます。 この例では、メモ帳 PID は 1228 です。

  5. UMDH を実行します。

    次のコマンドは、UMDH (umdh.exe) を実行します。 この例では、 -p: パラメーターを使用して PID を指定します。この例では 1228 です。 /f: パラメーターを使用して、ヒープ ダンプの出力ファイルの名前と場所を指定notepad.dmp。

    umdh -p:1228 -f:notepad.dmp 
    

    応答として、UMDH は、すべてのアクティブ ヒープの完全なダンプをnotepad.dmp ファイルに書き込みます。