Méthode IDataModelScriptDebugClient ::NotifyDebugEvent (dbgmodel.h)
Chaque fois que se produit un événement qui s’interrompt dans le débogueur de script, le code de débogage lui-même effectue un appel à l’interface via la méthode NotifyDebugEvent. Cette méthode est synchrone. Aucune exécution du script ne reprendra tant que l’interface n’est pas retournée à partir de l’événement. La définition du débogueur de script est conçue pour être simple : il n’y a absolument aucun événement imbriqué nécessitant un traitement.
Un événement de débogage est défini par un enregistrement variant appelé ScriptDebugEventInformation. Les champs dans les informations d’événement qui sont valides sont en grande partie définis par le membre DebugEvent.
Il définit le type d’événement qui s’est produit comme décrit par un membre de l’énumération ScriptDebugEvent :
Énumérant | Description |
---|---|
ScriptDebugBreakpoint | Indique qu’un point d’arrêt a été atteint. Les informations sur le point d’arrêt particulier qui a été atteint sont contenues dans la partie Point d’arrêtInformation de l’union qui contient les éléments suivants : • Point d’arrêtId : identificateur unique du point d’arrêt qui a été atteint. |
ScriptDebugStep | Indique qu’un événement d’étape s’est produit. Aucune autre information n’est fournie. |
ScriptDebugException | Indique qu’une exception s’est produite. Les informations relatives à l’exception particulière qui s’est produite sont contenues dans la position ExceptionInformaiton de l’union qui contient les éléments suivants : • IsUncaught : indique si le point d’arrêt est une exception de première chance (false) ou une exception non gérée (true). L’objet de données de l’événement est l’objet qui a été levée. |
ScriptDebugAsyncBreak | Indique qu’une interruption asynchrone dans le script s’est produite. Cela peut être dû à quelque chose comme « break on entry » ou « break on event » |
Lorsque l’interface décide de la façon dont elle souhaite procéder à partir de l’événement de débogage, elle remplit l’argument resumeEventKind et retourne avec succès à partir de la méthode NotifyDebugEvent. Le déroulement du débogueur dépend de la valeur de ce champ. Il est membre de l’énumération ScriptExecutionKind définie comme suit :
Énumérant | Description |
---|---|
ScriptExecutionNormal | Indique que l’interface souhaite que le script s’exécute normalement jusqu’à l’événement de débogage suivant. Il s’agit de l’équivalent d’une commande « go » dans une interface utilisateur de débogueur. |
ScriptExecutionStepIn | Indique que l’interface souhaite que le débogueur de script soit en mesure d’intervenir et d’avertir l’interface lorsque l’étape dans s’est terminée avec succès. Notez que d’autres événements peuvent se produire dans l’intervalle. Dans ce cas, il se peut qu’il n’y ait jamais de notification d’étape. |
ScriptDebugStepOut | Indique que l’interface souhaite que le débogueur de script sorte et informe l’interface lorsque l’étape est terminée. Notez que d’autres événements peuvent se produire dans l’intervalle. Dans ce cas, il se peut qu’il n’y ait jamais de notification d’étape. |
ScriptDebugStepOver | Indique que l’interface souhaite que le débogueur de script passe à pas et informe l’interface lorsque l’étape est terminée. Notez que d’autres événements peuvent se produire dans l’intervalle. Dans ce cas, il se peut qu’il n’y ait jamais de notification d’étape |
Syntaxe
HRESULT NotifyDebugEvent(
ScriptDebugEventInformation *pEventInfo,
IDataModelScript *pScript,
IModelObject *pEventDataObject,
ScriptExecutionKind *resumeEventKind
);
Paramètres
pEventInfo
Structure de données indiquant l’événement de débogage qui vient de se produire.
pScript
Script dans lequel l’événement s’est produit.
pEventDataObject
Objet de données de l’événement en question. Si l’événement n’a pas d’objet de données, nullptr est passé. Un objet de données est, par exemple, l’objet d’exception qui a été levée pour une notification d’exception.
resumeEventKind
Indication de l’interface au débogueur de la façon dont le débogueur doit reprendre l’exécution du code de script après le traitement de l’événement de débogage. Tel est retourné en tant que membre de l’énumération ScriptExecutionKind, comme décrit ci-dessus.
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 |