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 |