我正在调试我怀疑是在泄漏win32句柄的应用程序。任务管理器报告该应用程序已分配了大约5000个句柄。
使用任务管理器,我计算了GDI和用户对象,发现数字为350和73.我使用“GetGuiResources”函数验证了这个计数。
使用ProcessExplorer,我看了一下底部窗格中的打开句柄。列出了一些文件句柄和DLL,但不是5000。
如何确定5000个已分配句柄的类型?他们来自哪里?
答案 0 :(得分:3)
将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