IDebugControl :: WaitForEvent работает один раз, затем возвращает E_HANDLE - PullRequest
0 голосов
/ 07 декабря 2008

Я пытаюсь создать небольшой инструмент, использующий API отладчика , но у меня очень ограниченный успех.

Я могу получить экземпляры IDebugClient и IDebugControl , и оттуда я могу подключиться к уже запущенному пользовательскому процессу. Затем я вхожу в основной цикл, где я вызываю WaitForEvent , OutputStackTrace , SetExecutionStatus (DEBUG_STATUS_GO), и повторяю. По сути, это будет очень грубый профилировщик на основе выборки.

Хорошо, пока ..

Мой цикл выполняется за одну полную итерацию, я вижу, как отображается трассировка стека, а затем целевой процесс возвращается в рабочее состояние.

У меня проблема в том, что на 2-й итерации вызов WaitForEvent возвращает E_HANDLE («Неверный дескриптор»). Я не вижу в документации, почему эта ошибка должна быть возвращена. Кто-нибудь знает, почему это может происходить?

1 Ответ

0 голосов
/ 21 декабря 2008

Проблема оказалась в том, что я компилировал, связывал и запускал старую версию SDK. Теперь, когда я обновил свой SDK до последней версии (которая, как я полагаю, является версией, на которую ссылаются онлайн-документы), я получил поведение, которое по крайней мере соответствует документам.

У меня все еще есть проблемы, но больше нет этой проблемы.

...