2012-02-16 6 views
1

私はwin32ハンドルが漏れていると思われるアプリケーションをデバッグしています。タスクマネージャーは、アプリケーションに約5,000個のハンドルが割り当てられていることを報告します。割り当てられた 'ハンドル'タイプを決定します。

タスクマネージャを使用して、私はGDIとユーザーオブジェクトを数え、350と73の数を見つけました。「GetGuiResources」関数でこの数を確認しました。

ProcessExplorerを使用して、下部ペインの開いているハンドルを調べました。いくつかのファイルハンドルとDLLがリストされていますが、5000近くありません。

これらの割り当てられたハンドルのタイプを調べるにはどうすればよいですか?彼らはどこから来ているのですか?

+0

ハンドル数は増えていますか? –

+1

デバッガを使用します。コードをステップ実行し、増加を探します。あなたが踏んだものが何であれ、それを増やすには、もっとよく見る必要があります。 –

答えて

2

は、それが最後にハンドルと要約のあなたのリストを出力しますプロセスにWinDbgのを取り付け、

!handle 

を入力します。例:


>!handle 
... 
Handle c28 
    Type   File 
Handle c2c 
    Type   Section 
Handle c30 
    Type   File 
Handle c34 
    Type   Event 
Handle c44 
    Type   Event 
Handle c48 
    Type   File 
Handle c4c 
    Type   Section 
Handle c50 
    Type   File 
636 Handles 
Type   Count 
None   10 
Event   267 
Section   126 
File   132 
Directory  2 
Mutant   16 
WindowStation 2 
Semaphore  3 
Key    17 
Thread   37 
Desktop   1 
IoCompletion 3 
Timer   3 
KeyedEvent  1 
TpWorkerFactory 16 
関連する問題