Partilhar 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 de 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á um 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 proxy/stub code to transition from Script2 to 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 proxy/stub code to transition from IntermediateScript to Script1)
  • (Python) [IntermediateScript get intermediateProperty() { return this.firstProperty; }
  • (Marshaling ou proxy/stub code to transition from Script2 to IntermediateScript
  • (JavaScript) [Script2] get secondProperty() { return this.intermediateProperty; }

No segundo caso, é inteiramente possível que o depurador para o depurador JavaScript imaginado possa ver get firstProperty e get secondProperty sem visibilidade para obter intermediateProperty porque ele é 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 do Python imaginada, 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.

Valor de retorno

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

Requisitos

Requisito Valor
cabeçalho dbgmodel.h

Consulte também

interface IDataModelScriptDebugStackFrame