Partager via


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

Voir aussi

Interface IDataModelScriptDebugClient