Process Explorer - ハンドルリーク調査

クラウディア 
1. 概要
2. 状況
3. 操作
4. 保存

1. 概要

 起動するところまでで、書く機会がなく、そのまま放っておりましたが、運よくというか運悪くというか、リーク調査する機会がありましたので、メモを残します。  本ページは、下記のサイトを参考にさせていただきました。
Process Explorer でハンドルリークを調査する方法」
「メモリリーク/ハンドルリークの調査 #メモリリーク

2. 状況

 やたら、メモリがリークするプログラムがありましてな。  タスクマネージャで、見ていたら、どうもハンドルが増えているようです。  ログを入れたりしてみましたが、原因がわかりません。  そこで、検索すると「Process Explorer」で調査する方法がかかりました。  すっかり忘れていましたが、久々の登場となりました。

3. 操作

 「Process Explorer」を起動して。  プログラムは伏せますので、代わりに「FFFTP」にしておきます(「FFFTP」には、なんの問題もありませんよ、念のため)。  ターゲットのプロセスは、選択状態にしておきます。  「表示」→「下のペインの表示」へチェックを入れます。
「Process Explorer」-「表示」「下のペインの表示」

 「表示」→「下ペインビュー」で「ハンドル」へチェックを入れます。

「Process Explorer」-「表示」「下ペインビュー」

4. 保存

 前項の状態にしておいて様子を見ます。
「Process Explorer」-「稼働中」

 このプロセスを表示した状態で、Ctrl+A を押すと、ファイル保存ダイアログが表示されて、現在の状態を保存することができます。
 保存ファイルは、こんな感じ。


プロセス        CPU     プライベート バイト     ワーキング セット       PID     説明    会社名
Registry                8,800 K 48,188 K        196
System Idle Process     96.64   60 K    8 K     0

・・・ 中略 ・・・

MoNotificationUx.exe            2,492 K 12,472 K        14080   通知ホスト プロセス     Microsoft Corporation

Process: ffftp.exe Pid: 18232

種類            名前
ALPC Port       \RPC Control\OLE81F5C64B6E64D0168BD2E52E8F8F
ALPC Port       \BaseNamedObjects\[CoreUI]-PID(18232)-TID(9488) a61ccf09-7bb4-4337-9b2c-948b07b87345
ALPC Port       \BaseNamedObjects\[CoreUI]-PID(18232)-TID(18816) 078f94e5-ddd7-49d1-b16d-b897e3035863
Desktop         \Default
Directory       \KnownDlls
Directory       \Sessions\10\BaseNamedObjects
Event           \KernelObjects\MaximumCommitCondition
File            \Device\AvAswIDS_Ioc2
File            C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_659...

・・・ 中略 ・・・

Thread          ffftp.exe(18232): 18816
Thread          ffftp.exe(18232): 18816
WindowStation   \Sessions\10\Windows\WindowStations\WinSta0
WindowStation   \Sessions\10\Windows\WindowStations\WinSta0
 ここでは、重要なのは、9行目以下になります。  一定時間経過するごとに、このファイルを保存します。  すると、増えていれば、しれが少なくとも、なんの種類のハンドルかまではわかりますので、問題を特定するのに役立ちます。  「File」であれば、ファイルそのものまで判明しますので、一発でつきとめることもできそうです。
earthcar(アースカー)
Star Naming Gift