Метод 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 |