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


Метод IDataModelScript::Execute (dbgmodel.h)

Метод Execute выполняет содержимое скрипта в соответствии с последним успешным вызовом "Заполнение" и изменяет объектную модель отладчика в соответствии с этим содержимым. Если язык (или поставщик скриптов) определяет "основную функцию" - то, что автор хотел бы вызвать при нажатии мнимой кнопки "Выполнить скрипт" в пользовательском интерфейсе, такая "основная функция" не вызывается во время операции execute. Операция Execute может рассматриваться только для выполнения инициализации и обработки объектной модели (например, выполнение корневого кода и настройка точек расширяемости). Выполнение скрипта — это двусторонний обмен данными между поставщиком скриптов и клиентом скрипта. Ошибки, элемент управления отладкой и другие семантики передаются по каналу связи между IDataModelScript и IDataModelScriptClient.

В зависимости от того, выполнена ли операция выполнения или завершается сбоем, следует выполнить одно из двух действий:

Для успешного возврата:

  • Ранее выполненное содержимое скрипта очищается и забылось
  • Любые операции с объектной моделью или точки расширяемости, измененные в результате предыдущего выполнения скрипта, отменяются
  • Операции с объектной моделью и точки расширяемости нового выполнения скрипта активны

Для неудачного возврата:

  • Любые манипуляции или точки расширяемости нового попытка выполнения скрипта отменяются
  • Предыдущее состояние скрипта восстанавливается. Восстанавливаются все операции с объектной моделью и точки расширяемости.
  • Состояние должно быть так же, как и после успешного вызова "Заполнение", но перед любым вызовом Execute

Обратите внимание, что для правильно написанного поставщика скриптов и среды сценариев вызов метода Execute несколько раз без интервентного вызова "Заполнение или отмена связи" должно быть идемпотентным. То есть вызов времени Execute N в строке должен отображаться пользователю так же, как и при вызове execute один раз. Выполнение не должно создавать побочные результаты по состоянию целевого объекта отладки. Впоследствии использование свойств, методов или событий на мосту, созданных с помощью метода Execute, действительно может привести к побочным эффектам.

Синтаксис

HRESULT Execute(
  IDataModelScriptClient *client
);

Параметры

client

Интерфейс для клиента, запрашивающего выполнение, должен быть передан здесь. Если во время выполнения скрипта возникают ошибки или другие события, клиент должен получать уведомления о них и их расположении в скрипте с помощью методов в этом интерфейсе.

Возвращаемое значение

Этот метод возвращает HRESULT, указывающий на успех или сбой.

Требования

Требование Ценность
заголовка dbgmodel.h

См. также

интерфейса IDataModelScript