Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Всякий раз, когда возникает любое событие, которое прерывается в отладчик скрипта, сам код отладки вызывает интерфейс с помощью метода NotifyDebugEvent. Этот метод синхронен. Выполнение скрипта не возобновляется до тех пор, пока интерфейс не возвращается из события. Определение отладчика скрипта предназначено для простого: не требуется обработка вложенных событий.
Событие отладки определяется вариантной записью, известной как ScriptDebugEventInformation. Допустимые поля в сведениях о событии в значительной степени определяются членом DebugEvent.
Он определяет тип события, которое произошло, как описано членом перечисления ScriptDebugEvent:
Перечисление | Описание |
---|---|
ScriptDebugBreakpoint | Указывает, что точка останова была достигнута. Сведения о конкретной точке останова, которая была достигнута, содержатся в части останова в союзе, содержащей следующее: • BreakpointId: уникальный идентификатор для точки останова, которая была достигнута. |
ScriptDebugStep | Указывает, что произошло событие шага. Дополнительные сведения не предоставляются. |
ScriptDebugException | Указывает, что произошло исключение. Сведения о конкретном исключении, которое произошло, содержатся в позиции ExceptionInformaiton объединения, содержащей следующее: • IsUncaught: Указывает, является ли точка останова первой вероятностью (false) или необработанным исключением (true). Объект данных для события — это объект, который был создан. |
ScriptDebugAsyncBreak | Указывает, что асинхронный разрыв в скрипте произошел. Это может быть связано с тем, что может быть что-то подобное "перерыв на входе" или "перерыв на событии" |
Когда интерфейс решает, как он хочет перейти от события отладки, он заполняет аргумент resumeEventKind и успешно возвращается из метода NotifyDebugEvent. Как выполняется отладчик, зависит от значения в этом поле. Это элемент перечисления ScriptExecutionKind, определенный следующим образом:
Перечисление | Описание |
---|---|
ScriptExecutionNormal | Указывает, что интерфейс хотел бы, чтобы скрипт выполнялся нормально до следующего события отладки. Это эквивалент команды go в пользовательском интерфейсе отладчика. |
ScriptExecutionStepIn | Указывает, что интерфейс хотел бы отладчик скрипта выполнить шаг и уведомить интерфейс о успешном завершении шага. Обратите внимание, что другие события могут возникать в промежуточном периоде. В этом случае никогда не может быть уведомления о шаге. |
ScriptDebugStepOut | Указывает, что интерфейс хотел бы отладчик скрипта выйти и уведомить интерфейс о успешном завершении шага. Обратите внимание, что другие события могут возникать в промежуточном периоде. В этом случае никогда не может быть уведомления о шаге. |
ScriptDebugStepOver | Указывает, что интерфейс хотел бы отладчик скрипта выполнить шаг и уведомить интерфейс о успешном завершении шага. Обратите внимание, что другие события могут возникать в промежуточном периоде. В этом случае никогда не может быть уведомления о шаге |
Синтаксис
HRESULT NotifyDebugEvent(
ScriptDebugEventInformation *pEventInfo,
IDataModelScript *pScript,
IModelObject *pEventDataObject,
ScriptExecutionKind *resumeEventKind
);
Параметры
pEventInfo
Структура данных, указывающая, что только что произошло событие отладки.
pScript
Скрипт, в котором произошло событие.
pEventDataObject
Объект данных для данного события. Если событие не имеет объекта данных, передается nullptr. Объект данных, например, объект исключения, который был создан для уведомления об исключении.
resumeEventKind
Указание от интерфейса отладчику о том, как отладчик должен возобновить выполнение кода скрипта после обработки события отладки. Это возвращается в качестве члена перечисления ScriptExecutionKind, как описано выше.
Возвращаемое значение
Этот метод возвращает HRESULT, указывающий на успех или сбой.
Требования
Требование | Ценность |
---|---|
заголовка | dbgmodel.h |