Partager via


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

Si une trame de pile donnée est un point de transition déterminé par la méthode IsTransition (voir la documentation qui s’y trouve pour 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.

En plus de renvoyer l’interface IDataModelScript pour le script précédent, cet appel est censé tenter de déterminer si la transition est contiguë ou non. Une transition contiguë est celle où un script/fournisseur appelle directement un autre (en ignorant tout 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 autre script/fournisseur qui ne peut pas être détecté) entre les deux.

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 or proxy/stub code to transition from Script2 to Script1)
  • [Script2] get secondProperty() { return this.firstProperty() ; }

Exemple d’une 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 or proxy/stub code to transition from IntermediateScript to Script1)
  • (Python) [IntermediateScript get intermediateProperty() { return this.firstProperty ; }
  • (Marshaling or proxy/stub code to transition from Script2 to 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 get intermediateProperty, 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 s’est passée de Script1 à Script2 en tant que transition non contiguë.

Si l’interface de débogage globale est capable d’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

Une indication indiquant si la transition est contiguë ou non est retournée ici.

Valeur retournée

Cette méthode retourne HRESULT qui indique la réussite ou l’échec.

Configuration requise

Condition requise Valeur
En-tête dbgmodel.h

Voir aussi

Interface IDataModelScriptDebugStackFrame