Отслеживание событий
Общие сведения о событиях в подсистеме отладчика см. в разделе События.
События, происходящие в целевом объекте или подсистеме отладчика, можно отслеживать с помощью интерфейса IDebugEventCallbacks . Объект IDebugEventCallbacks можно зарегистрировать в клиенте с помощью SetEventCallbacks. У каждого клиента может быть зарегистрирован только один объект IDebugEventCallbacks .
Когда объект IDebugEventCallbacks зарегистрирован в клиенте, подсистема вызывает IDebugEventCallbacks объекта::GetInterestMask , чтобы определить, какие события нужны объекту. В него будут отправляться только события, в которых объект заинтересован.
Для каждого типа события подсистема вызывает соответствующий метод обратного вызова в IDebugEventCallbacks. Для событий из целевого объекта значение DEBUG_STATUS_XXX , возвращаемое этими вызовами, указывает, как должно происходить выполнение целевого объекта. Подсистема собирает эти возвращаемые значения из каждого вызываемого объекта IDebugEventCallbacks и действует с одним из них с наивысшим приоритетом.
События из целевого объекта, которые по умолчанию попадают в отладчик
Следующие события попадают в отладчик по умолчанию:
События точки останова
События исключений (не описаны здесь)
Системная ошибка
События из целевого объекта, которые не попадают в отладчик по умолчанию
Следующие события не прерываются в отладчике по умолчанию:
Создание события процесса
Выход из события процесса
Создание события потока
Событие exit thread
Событие модуля загрузки
Событие выгрузки модуля
Внутренние изменения подсистемы
Ниже приведены не фактические события, а только внутренние изменения подсистемы:
Изменение целевого объекта
Изменение подсистемы
Изменение символа подсистемы
Изменение состояния сеанса