Freigeben über


IDataModelScriptDebugStackFrame::GetTransition-Methode (dbgmodel.h)

Wenn ein bestimmter Stapelrahmen ein Übergangspunkt ist, der von der IsTransition-Methode bestimmt wird (eine Definition von Übergangspunkten finden Sie in der Dokumentation dort), gibt die GetTransition-Methode Informationen zum Übergang zurück. Insbesondere gibt diese Methode das vorherige Skript zurück, das einen Aufruf in das Skript ausgeführt hat, das durch das Stapelsegment dargestellt wird, das diesen IDataModelScriptDebugStackFrame enthält.

Zusätzlich zur Rückgabe der IDataModelScript-Schnittstelle für das vorherige Skript wird erwartet, dass dieser Aufruf versucht, zu bestimmen, ob der Übergang zusammenhängend ist oder nicht. Ein zusammenhängender Übergang ist ein Übergang, bei dem ein Skript/Anbieter direkt ein anderes aufgerufen hat (wobei jeder Proxy-/Stubcode ignoriert wird, um die Kommunikation zwischen Skriptkontexten zu erleichtern). Ein nicht zusammenhängender Übergang ist ein Übergang, bei dem dazwischen zwischengeschalteter Code vorhanden ist – entweder systemeigener oder anderer Skript-/Anbieter, der nicht erkannt werden kann.

Beispiel für einen zusammenhängenden Übergangsstapel (bei dem alle Eigenschaften Erweiterungen für dasselbe Objekt sind):

  • [Script1] get firstProperty() { return 42; }
  • (Marshalling oder Proxy-/Stubcode für den Übergang von Script2 zu Script1)
  • [Script2] get secondProperty() { return this.firstProperty(); }

Ein Beispiel für einen nicht zusammenhängenden Übergangsstapel (bei dem alle Eigenschaften Erweiterungen für dasselbe Objekt sind), in dem wir uns zwei verschiedene Skriptanbieter vorstellen – einen JavaScript und einen Python:

  • (JavaScript) [Script1] get firstProperty() { return 42; }
  • (Marshalling oder Proxy-/Stubcode für den Übergang von IntermediateScript zu Script1)
  • (Python) [IntermediateScript get intermediateProperty() { return this.firstProperty; }
  • (Marshalling oder Proxy-/Stubcode für den Übergang von Script2 zu IntermediateScript
  • (JavaScript) [Script2] get secondProperty() { return this.intermediateProperty; }

Im zweiten Fall ist es durchaus möglich, dass der Debugger für den imaginierten JavaScript-Debugger get firstProperty und secondProperty ohne Sichtbarkeit in getProperty sehen kann, da es sich um einen völlig anderen Skriptanbieter handelt (ein angenommener Python-Anbieter hier). Der Skriptdebugger kann in der GetTransition-Methode angeben, dass der Übergang von Script1 zu Script2 als nicht zusammenhängender Übergang erfolgt ist.

Wenn die gesamte Debugschnittstelle in der Lage ist, Informationen für den imaginierten Python-Teil zusammenzufügen, erfolgt dies. Der imaginierte JavaScript-Anbieter gibt lediglich die Diskontinuität an.

Syntax

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

Parameter

transitionScript

Der Debugger gibt hier das vorherige Skript zurück. Das vorherige Skript ist das Skript, das in das Skript aufgerufen hat, das durch das Stapelsegment dargestellt wird, das diesen IDataModelStackDebugFrame enthält.

isTransitionContiguous

Hier wird ein Hinweis darauf zurückgegeben, ob der Übergang zusammenhängend ist oder nicht.

Rückgabewert

Diese Methode gibt HRESULT zurück, das den Erfolg oder Fehler angibt.

Anforderungen

Anforderung Wert
Header dbgmodel.h

Weitere Informationen

IDataModelScriptDebugStackFrame-Schnittstelle