IDataModelScriptDebugClient ::NotifyDebugEvent, méthode (dbgmodel.h)
Chaque fois qu’un événement se produit qui se décompose 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 reprend jusqu’à ce que l’interface retourne de l’événement. La définition du débogueur de script est destinée à être simple : il n’existe 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 valides sont largement 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ération | Description |
---|---|
ScriptDebugBreakpoint | Indique qu’un point d’arrêt a été atteint. Des informations sur le point d’arrêt particulier qui a été atteint sont contenues dans la partie BreakpointInformation de l’union qui contient les éléments suivants : • BreakpointId : Identificateur unique du point d’arrêt qui a été atteint. |
ScriptDebugStep | Indique qu’un événement d’étape s’est produit. Aucune information supplémentaire n’est fournie. |
ScriptDebugException | Indique qu’une exception s’est produite. Des informations sur 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 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 rupture 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 continuer à partir de l’événement de débogage, elle remplit l’argument resumeEventKind et retourne correctement à partir de la méthode NotifyDebugEvent. La façon dont le débogueur continue dépend de la valeur de ce champ. Il s’agit d’un membre de l’énumération ScriptExecutionKind définie comme suit :
Énumération | 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 du débogueur. |
ScriptExecutionStepIn | Indique que l’interface souhaite que le débogueur de script passe à pas et notifie l’interface lorsque l’étape de l’étape a réussi. 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 notifie l’interface une fois l’étape 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 notifie l’interface une fois l’étape 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 de retour
Cette méthode retourne HRESULT qui indique la réussite ou l’échec.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | dbgmodel.h |