IDataModelScriptDebugStackFrame ::GetTransition, méthode (dbgmodel.h)
Si une trame de pile donnée est un point de transition tel que déterminé par la méthode IsTransition (consultez la documentation relative à une définition de points de transition), la méthode GetTransition retourne des informations sur la transition. En particulier, cette méthode retourne le script précédent : celui qui a effectué un appel au script représenté par le segment de pile contenant ce IDataModelScriptDebugStackFrame.
Outre le retour de l’interface IDataModelScript pour le script précédent, cet appel devrait tenter de déterminer si la transition est contiguë ou non. Une transition contiguë est une transition où un script/fournisseur s’appelle directement un autre (en ignorant le code proxy/stub qui peut exister pour faciliter la communication entre les contextes de script). Une transition non contiguë est une transition où il existe du code intermédiaire ( natif ou un autre script/fournisseur qui ne peut pas être détecté ) entre eux.
Exemple de pile de transition contiguë (où toutes les propriétés sont des extensions sur le même objet) :
- [Script1] get firstProperty() { return 42 ; }
- (Marshaling ou code proxy/stub pour passer de Script2 à Script1)
- [Script2] get secondProperty() { return this.firstProperty() ; }
Exemple de pile de transition non contiguë (où toutes les propriétés sont des extensions sur le même objet) où nous imaginons deux fournisseurs de script différents : un JavaScript et un Python :
- (JavaScript) [Script1] get firstProperty() { return 42 ; }
- (Marshaling ou code proxy/stub pour passer de IntermediateScript à Script1)
- (Python) [IntermediateScript get intermediateProperty() { return this.firstProperty ; }
- (Marshaling ou code proxy/stub pour passer de Script2 à IntermediateScript
- (JavaScript) [Script2] get secondProperty() { return this.intermediateProperty ; }
Dans le deuxième cas, il est tout à fait possible que le débogueur pour le débogueur JavaScript imaginé puisse voir obtenir firstProperty et obtenir secondProperty sans visibilité sur l’obtention intermédiaireProperty, car il s’agit d’un fournisseur de script entièrement différent (un python imaginé ici). Le débogueur de script peut indiquer dans la méthode GetTransition que la transition était de Script1 à Script2 comme une transition non contiguë.
Si l’interface de débogage globale est capable de assembler des informations pour la partie Python imaginée, elle le fera. Le fournisseur JavaScript imaginé indique simplement la discontinuité.
Syntaxe
HRESULT GetTransition(
IDataModelScript **transitionScript,
bool *isTransitionContiguous
);
Paramètres
transitionScript
Le débogueur retourne le script précédent ici. Le script précédent est celui qui a appelé dans le script représenté par le segment de pile contenant ce IDataModelStackDebugFrame.
isTransitionContiguous
Indique si la transition est contiguë ou non est retournée ici.
Valeur de retour
Cette méthode retourne HRESULT qui indique la réussite ou l’échec.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | dbgmodel.h |