Compartilhar via


Método IDataModelScriptDebugStackFrame::GetTransition (dbgmodel.h)

Se um determinado quadro de pilha for um ponto de transição conforme determinado pelo método IsTransition (consulte a documentação lá para obter uma definição de pontos de transição), o método GetTransition retornará informações sobre a transição. Em particular, esse método retorna o script anterior , aquele que fez uma chamada para o script representado pelo segmento de pilha que contém esse IDataModelScriptDebugStackFrame.

Além de retornar a interface IDataModelScript para o script anterior, espera-se que essa chamada tente determinar se a transição é contígua ou não. Uma transição contígua é aquela em que um script/provedor chamou diretamente outro (ignorando qualquer código proxy/stub que possa existir para facilitar a comunicação entre contextos de script). Uma transição não contígua é aquela em que há código intermediário -- nativo ou outro script/provedor que não pode ser detectado -- no meio.

Um exemplo de uma pilha de transição contígua (em que todas as propriedades são extensões no mesmo objeto):

  • [Script1] get firstProperty() { return 42; }
  • (Marshaling ou código proxy/stub para a transição de Script2 para Script1)
  • [Script2] get secondProperty() { return this.firstProperty(); }

Um exemplo de uma pilha de transição não contígua (em que todas as propriedades são extensões no mesmo objeto) em que imaginamos dois provedores de script diferentes: um JavaScript e um Python:

  • (JavaScript) [Script1] get firstProperty() { return 42; }
  • (Marshaling ou código proxy/stub para a transição de IntermediateScript para Script1)
  • (Python) [IntermediateScript get intermediateProperty() { return this.firstProperty; }
  • (Marshaling ou código proxy/stub para a transição de Script2 para IntermediateScript
  • (JavaScript) [Script2] get secondProperty() { return this.intermediateProperty; }

No segundo caso, é inteiramente possível que o depurador para o depurador de JavaScript imaginado possa ver get firstProperty e obter secondProperty sem visibilidade para obter intermediateProperty porque é um provedor de script totalmente diferente (um Python imaginado aqui). O depurador de script pode indicar no método GetTransition que a transição foi de Script1 para Script2 como uma transição não contígua.

Se a interface de depuração geral for capaz de unir informações para a parte imaginada do Python, ela o fará. O provedor JavaScript imaginado simplesmente indica a descontinuidade.

Sintaxe

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

Parâmetros

transitionScript

O depurador retorna o script anterior aqui. O script anterior é aquele chamado para o script representado pelo segmento de pilha que contém esse IDataModelStackDebugFrame.

isTransitionContiguous

Uma indicação de se a transição é contígua ou não é retornada aqui.

Retornar valor

Esse método retorna HRESULT que indica êxito ou falha.

Requisitos

Requisito Valor
Cabeçalho dbgmodel.h

Confira também

Interface IDataModelScriptDebugStackFrame