実行プロセスの分析
実行中のプロセスでヒープ メモリの割り当てを記録および分析するには、次のコマンドを使用します。 この分析では、スタック トレースに重点を置いています。
umdh -p:PID [-f:LogFile] [-v[:MsgFile]] | [-g] | [-h]
パラメーター
-p:PID
分析するプロセスを指定します。 PID はプロセスのプロセス ID です。 このパラメーターは必須です。
実行中のプロセスの PID を見つけるには、タスク マネージャー、タスクリスト、または TList を使用します。
-f:LogFile
ログの内容をテキスト ファイルに保存します。 既定では、UMDH は stdout (コマンド ウィンドウ) にログを書き込みます。
LogFile は、ファイルのパス (省略可能) と名前を指定します。 既存のファイルを指定すると、UMDH はファイルを上書きします。
注: UMDH が管理者モードで起動されていない場合、または "保護された" パスへの書き込みを試みると、アクセスが拒否されます。
-v[:MsgFile]
詳細モード 詳細情報とエラー メッセージを生成します。 既定では、UMDH はこれらのメッセージを stderr に書き込みます。
MsgFile は、テキスト ファイルのパス (省略可能) と名前を指定します。 この変数を使用すると、UMDH は stderr ではなく、指定されたファイルに詳細メッセージを書き込みます。 既存のファイルを指定すると、UMDH はファイルを上書きします。
-g
プロセスによって参照されていないヒープ ブロック ("ガベージ コレクション") をログに記録します。
-h
ヘルプを表示します。
コメント
Windows 2000 では、UMDH でスタック トレース データベースの検索でエラーが報告され、GFlags で Create user mode stack trace database オプションが有効になっている場合は、シンボル ファイルの競合が発生する可能性があります。 これを解決するには、アプリケーションの DBG シンボル ファイルと PDB シンボル ファイルを同じディレクトリにコピーして、もう一度やり直してください。
使用例
umdh -?
umdh -p:2230
umdh -p:2230 -f:dump_allocations.txt
umdh -p:2230 -f:c:\Log1.txt -v:c:\Msg1.txt
umdh -p:2230 -g -f:garbage.txt