确定已分配';手柄';类型

本文关键字:手柄 类型 分配 | 更新日期: 2023-09-27 18:24:49

我正在调试一个应用程序,我怀疑它正在泄漏win32句柄。任务管理器报告应用程序分配了大约5000个句柄。

使用任务管理器,我计算了GDI和用户对象,发现数字分别是350和73。我用"GetGuiResources"函数验证了这个计数。

使用ProcessExplorer,我查看了底部窗格中打开的句柄。列出了一些文件句柄和DLL,但没有接近5000个。

如何确定这5000个已分配句柄的类型?他们从哪里来?

确定已分配';手柄';类型

将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