Método IDataModelScriptDebugStackFrame::GetTransition (dbgmodel.h)
Si un marco de pila determinado es un punto de transición determinado por el método IsTransition (consulte la documentación allí para obtener una definición de puntos de transición), el método GetTransition devuelve información sobre la transición. En concreto, este método devuelve el script anterior, el que realizó una llamada al script representado por el segmento de pila que contiene este IDataModelScriptDebugStackFrame.
Además de devolver la interfaz IDataModelScript del script anterior, se espera que esta llamada realice un intento de determinar si la transición es contigua o no. Una transición contigua es aquella en la que un script o proveedor llama directamente a otro (ignorando cualquier código proxy o código auxiliar que pueda existir para facilitar la comunicación entre contextos de script). Una transición no contigua es aquella en la que hay código intermedio (nativo u otro script o proveedor que no se puede detectar) entre sí.
Un ejemplo de una pila de transición contigua (donde todas las propiedades son extensiones en el mismo objeto):
- [Script1] get firstProperty() { return 42; }
- (Serialización o código proxy/código auxiliar para realizar la transición de Script2 a Script1)
- [Script2] get secondProperty() { return this.firstProperty(); }
Un ejemplo de una pila de transición no contigua (donde todas las propiedades son extensiones en el mismo objeto) donde imaginamos dos proveedores de scripts diferentes: un JavaScript y un Python:
- (JavaScript) [Script1] get firstProperty() { return 42; }
- (Serialización o código proxy/código auxiliar para realizar la transición de IntermediateScript a Script1)
- (Python) [IntermediateScript get intermediateProperty() { return this.firstProperty; }
- (Serialización o código proxy/código auxiliar para realizar la transición de Script2 a IntermediateScript
- (JavaScript) [Script2] get secondProperty() { return this.intermediateProperty; }
En el segundo caso, es totalmente posible que el depurador para el depurador de JavaScript imaginado pueda ver get firstProperty y obtener secondProperty sin visibilidad para obtener intermediateProperty porque es un proveedor de scripts completamente diferente (uno imaginado de Python aquí). El depurador de scripts puede indicar en el método GetTransition que la transición era de Script1 a Script2 como una transición no contigua.
Si la interfaz de depuración general es capaz de unir información para la parte de Python imaginada, lo hará. El proveedor de JavaScript imaginado simplemente indica la discontinuidad.
Sintaxis
HRESULT GetTransition(
IDataModelScript **transitionScript,
bool *isTransitionContiguous
);
Parámetros
transitionScript
El depurador devuelve el script anterior aquí. El script anterior es el que llamó al script representado por el segmento de pila que contiene este IDataModelStackDebugFrame.
isTransitionContiguous
Indica si la transición es contigua o no se devuelve aquí.
Valor devuelto
Este método devuelve HRESULT, que indica que se ha realizado correctamente o no.
Requisitos
Requisito | Valor |
---|---|
Header | dbgmodel.h |