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


Метод IDataModelScriptDebugStackFrame::GetTransition (dbgmodel.h)

Если заданный кадр стека является точкой перехода, определяемой методом IsTransition (определение точек перехода см. в документации), метод GetTransition возвращает сведения о переходе. В частности, этот метод возвращает предыдущий скрипт , который сделал вызов скрипта, представленного сегментом стека, содержащим этот IDataModelScriptDebugStackFrame.

Помимо возврата интерфейса IDataModelScript для предыдущего скрипта, ожидается, что этот вызов попытается определить, является ли переход непрерывным. Непрерывный переход — это переход, при котором один скрипт или поставщик напрямую вызывает другой (игнорируя любой код прокси-сервера или заглушки для упрощения обмена данными между контекстами скриптов). Несмежный переход — это переход, в котором между ними есть промежуточный код ( собственный или другой скрипт или поставщик), который не может быть обнаружен.

Пример непрерывного стека перехода (где все свойства являются расширениями одного объекта):

  • [Script1] get firstProperty() { return 42; }
  • (Маршалинг или код прокси-заглушки для перехода с Script2 на Script1)
  • [Script2] get secondProperty() { return this.firstProperty(); }

Пример несмежного стека перехода (где все свойства являются расширениями одного объекта), где мы представляем два разных поставщика скриптов — один JavaScript и один Python:

  • (JavaScript) [Script1] get firstProperty() { return 42; }
  • (Маршалинг или код прокси-заглушки для перехода с IntermediateScript на Script1)
  • (Python) [IntermediateScript get intermediateProperty() { return this.firstProperty; }
  • (Маршалинг или код прокси-сервера или заглушки для перехода с Script2 на IntermediateScript
  • (JavaScript) [Script2] get secondProperty() { return this.intermediateProperty; }

Во втором случае вполне возможно, что отладчик для воображаемого отладчика JavaScript может видеть получение firstProperty и получение secondProperty без видимости get intermediateProperty, так как это совершенно другой поставщик скриптов (воображаемого Python здесь). Отладчик скриптов может указать в методе GetTransition, что переход был из Script1 в Script2 как несмежный переход.

Если общий интерфейс отладки способен склеивание сведений для воображаемой части Python, он сделает это. Воображаемый поставщик JavaScript просто указывает на разрыв.

Синтаксис

HRESULT GetTransition(
  IDataModelScript **transitionScript,
  bool             *isTransitionContiguous
);

Параметры

transitionScript

Отладчик возвращает здесь предыдущий скрипт. Предыдущий скрипт вызывается в скрипт, представленный сегментом стека, содержащим этот IDataModelStackDebugFrame.

isTransitionContiguous

Здесь возвращается указание на то, является ли переход непрерывным.

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

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

Требования

Требование Значение
Заголовок dbgmodel.h

См. также раздел

Интерфейс IDataModelScriptDebugStackFrame