Поделиться через


Сведения о событии

Всякий раз, когда сеанс отладки доступен, происходит последнее событие. Это событие, которое привело к тому, что сеанс станет доступным. Целевой объект события — это целевой объект, который создал последнее событие. Когда сеанс становится доступным, текущий целевой объект устанавливается в целевой объект события. Сведения о последнем событии возвращает GetLastEventInformation. Указатель инструкции для последнего события и состояние памяти в его указателе во время возникновения события возвращаются операциями запроса RequestDEBUG_REQUEST_GET_CAPTURED_EVENT_CODE_OFFSET и DEBUG_REQUEST_READ_CAPTURED_EVENT_CODE_STREAM.

Если целевой объект является файлом аварийного дампа, последнее событие является последним событием , которое произошло до создания файла дампа. Это событие хранится в файле дампа, и подсистема создает его для обратных вызовов событий при получении файла дампа в качестве целевого объекта отладки.

Если целевой объект является целевым объектом режима ядра и произошла проверка ошибок , код проверки ошибок и связанные параметры можно найти с помощью ReadBugCheckData.

Если цель — минидамп в пользовательском режиме, генератор дампов может хранить дополнительное событие. Как правило, это событие, которое спровоцировало генератор для сохранения файла дампа. Сведения об этом событии возвращаются GetStoredEventInformation и операциями RequestDEBUG_REQUEST_TARGET_EXCEPTION_CONTEXT, DEBUG_REQUEST_TARGET_EXCEPTION_THREAD и DEBUG_REQUEST_TARGET_EXCEPTION_RECORD.

Файлы дампа могут содержать статический список событий. Каждое событие представляет моментальный снимок целевого объекта в определенный момент времени. Функция GetNumberEvents возвращает количество событий в этом списке. Для описания каждого события в списке используйте GetEventIndexDescription. Чтобы задать событие из этого списка в качестве текущего события, используйте метод SetNextEventIndex; после вызова WaitForEvent событие становится текущим событием. Чтобы определить, какое событие в списке является текущим событием, используйте GetCurrentEventIndex.