Freigeben über


IDataModelScriptDebugStackFrame::GetTransition-Methode (dbgmodel.h)

Wenn es sich bei einem bestimmten Stapelframe um einen Übergangspunkt handelt, der durch die IsTransition-Methode bestimmt wird (siehe dokumentation dort für eine Definition von Übergangspunkten), gibt die GetTransition-Methode Informationen über den Übergang zurück. Insbesondere gibt diese Methode das vorherige Skript zurück - das, das einen Aufruf des Skripts vorgenommen hat, das durch das Stapelsegment dargestellt wird, das diesen IDataModelScriptDebugStackFrameenthält.

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

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

  • [Script1] get firstProperty() { return 42; }
  • (Marshaling- 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 auf demselben Objekt sind), bei denen wir uns zwei verschiedene Skriptanbieter vorstellen - ein JavaScript und ein Python:

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

Im zweiten Fall ist es völlig möglich, dass der Debugger für den angenommenen JavaScript-Debugger firstProperty sehen kann und secondProperty ohne Sichtbarkeit in "intermediateProperty" abrufen 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 erfolgte.

Wenn die allgemeine Debugschnittstelle In der Lage ist, Informationen für den angenommenen Python-Teil zusammenzufügen, geschieht dies. Der angenommene JavaScript-Anbieter weist einfach auf die Einstellung hin.

Syntax

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

Parameter

transitionScript

Der Debugger gibt das vorherige Skript hier zurück. Das vorherige Skript ist das Skript, das in das Skript aufgerufen wird, das durch das Stapelsegment mit diesem IDataModelStackDebugFrame dargestellt wird.

isTransitionContiguous

Gibt an, ob der Übergang zusammenhängend ist oder nicht.

Rückgabewert

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

Anforderungen

Anforderung Wert
Header- dbgmodel.h

Siehe auch

IDataModelScriptDebugStackFrame-Schnittstelle