Condividi tramite


Metodo IDataModelScriptDebugStackFrame::GetTransition (dbgmodel.h)

Se un determinato stack frame è un punto di transizione determinato dal metodo IsTransition (vedere la documentazione per una definizione di punti di transizione), il metodo GetTransition restituisce informazioni sulla transizione. In particolare, questo metodo restituisce lo script precedente, ovvero quello che ha effettuato una chiamata allo script rappresentato dal segmento dello stack contenente questo IDataModelScriptDebugStackFrame.

Oltre a restituire l'interfaccia IDataModelScript per lo script precedente, è previsto che questa chiamata tenti di determinare se la transizione è contigua o meno. Una transizione contigua è quella in cui uno script/provider chiama direttamente un altro (ignorando qualsiasi codice proxy/stub possa esistere per facilitare la comunicazione tra contesti di script). Una transizione non contigua è quella in cui è presente codice intermedio, nativo o un altro script/provider tra cui non è possibile rilevare.

Esempio di uno stack di transizione contiguo (in cui tutte le proprietà sono estensioni nello stesso oggetto):

  • [Script1] get firstProperty() { return 42; }
  • (Marshalling o codice proxy/stub per la transizione da Script2 a Script1)
  • [Script2] get secondProperty() { return this.firstProperty(); }

Un esempio di stack di transizione non contiguo (in cui tutte le proprietà sono estensioni sullo stesso oggetto) in cui si immaginino due provider di script diversi, uno JavaScript e un Python:

  • (JavaScript) [Script1] get firstProperty() { return 42; }
  • (Marshalling o codice proxy/stub per la transizione da IntermediateScript a Script1)
  • (Python) [IntermediateScript get intermediateProperty() { return this.firstProperty; }
  • (Marshalling o codice proxy/stub per la transizione da Script2 a IntermediateScript
  • (JavaScript) [Script2] get secondProperty() { return this.intermediateProperty; }

Nel secondo caso, è del tutto possibile che il debugger per il debugger JavaScript immaginato possa visualizzare get firstProperty e ottenere secondProperty senza visibilità per ottenere intermediateProperty perché è un provider di script completamente diverso (un python immaginato qui). Il debugger di script può indicare nel metodo GetTransition che la transizione è stata da Script1 a Script2 come transizione non contigua.

Se l'interfaccia di debug complessiva è in grado di unire le informazioni per la parte di Python immaginata, questa operazione verrà eseguita. Il provider JavaScript immaginato indica semplicemente la discontinuità.

Sintassi

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

Parametri

transitionScript

Il debugger restituisce qui lo script precedente. Lo script precedente è quello che ha chiamato nello script rappresentato dal segmento stack contenente questo IDataModelStackDebugFrame.

isTransitionContiguous

Indica se la transizione è contigua o meno viene restituita qui.

Valore restituito

Questo metodo restituisce HRESULT che indica l'esito positivo o negativo.

Fabbisogno

Requisito Valore
intestazione dbgmodel.h

Vedere anche

'interfaccia IDataModelScriptDebugStackFrame