Определить выделенные типы «Handle» - PullRequest
1 голос
/ 17 февраля 2012

Я отлаживаю приложение, которое, как я подозреваю, пропускает дескрипторы win32. Диспетчер задач сообщает, что приложению выделено около 5000 дескрипторов.

Используя диспетчер задач, я посчитал GDI и пользовательские объекты и обнаружил, что число равно 350 и 73. Я проверил это число с помощью функции «GetGuiResources».

Используя ProcessExplorer, я взглянул на открытые маркеры в нижней панели. В списке есть несколько файловых дескрипторов и библиотек DLL, но не более 5000.

Как я могу определить типы этих 5000 выделенных дескрипторов? Откуда они?

1 Ответ

3 голосов
/ 17 февраля 2012

Присоедините 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...