Отладка с событиями в Windows - PullRequest
1 голос
/ 24 сентября 2008

Если я создаю событие, используя CreateEvent в Windows, как я могу проверить, сигнализируется ли это событие или нет, используя отладчик в Visual Studio? CreateEvent возвращает дескриптор, который не дает мне доступа к большому количеству информации. Прежде чем я вызову WaitForSingleObject(), я хочу проверить, сигнализируется ли событие, прежде чем я войду в функцию.

Ответы [ 3 ]

6 голосов
/ 24 сентября 2008

Вы можете использовать инструмент Process Explorer (http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx)), чтобы вручную проверить событие вне отладчика. Это помогает, если событие названо, чтобы вам было легче его найти.

4 голосов
/ 25 сентября 2008

Используйте команду handle. Вот образец

Следующая команда отображает подробную информацию о дескрипторе 0x8.

0:000> !handle 8 f 

Ручка 8 Тип Событие Атрибуты 0 GrantedAccess 0x100003: синхронизировать QueryState, ModifyState HandleCount 2 PointerCount 3 название Информация об объекте Тип события Автосброс Событие ждет

1 голос
/ 24 сентября 2008

Если событие сигнализируется и вы используете WaitForSingleObject (), оно немедленно вернется. Кроме того, вы можете вызвать WaitForSingleObject () со временем ожидания 0, чтобы определить, сигнализируется ли он или нет. Однако в этом нет необходимости - установите начальное состояние в вызове CreateEvent () (что до сих пор неясно в вашем вопросе).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...