Freigeben über


IDataModelScriptDebugClient::NotifyDebugEvent-Methode (dbgmodel.h)

Wenn ein Ereignis auftritt, das in den Skriptdebugger einbricht, ruft der Debugcode selbst die Schnittstelle über die NotifyDebugEvent-Methode auf. Diese Methode ist synchron. Die Ausführung des Skripts wird erst fortgesetzt, wenn die Schnittstelle vom Ereignis zurückgibt. Die Definition des Skriptdebuggers soll einfach sein: Es gibt absolut keine geschachtelten Ereignisse, die verarbeitet werden müssen.

Ein Debugereignis wird durch einen Variantendatensatz definiert, der als ScriptDebugEventInformation bezeichnet wird. Welche Felder in den Ereignisinformationen gültig sind, wird größtenteils durch das DebugEvent-Element definiert.

Es definiert die Art des Ereignisses, das aufgetreten ist, wie von einem Member der ScriptDebugEvent-Enumeration beschrieben:

Enumerant BESCHREIBUNG
ScriptDebugBreakpoint Gibt an, dass ein Haltepunkt erreicht wurde. Informationen zu dem bestimmten Haltepunkt, der erreicht wurde, sind im BreakpointInformation-Teil der Union enthalten, der Folgendes enthält: • BreakpointId: Der eindeutige Bezeichner für den Breakpoint, der erreicht wurde.
ScriptDebugStep Gibt an, dass ein Schrittereignis aufgetreten ist. Es werden keine weiteren Informationen bereitgestellt.
ScriptDebugException Gibt an, dass eine Ausnahme aufgetreten ist. Informationen über die jeweilige Ausnahme, die aufgetreten ist, sind in der ExceptionInformaiton-Position der Union enthalten, die Folgendes enthält: • IsUncaught: Gibt an, ob der Haltepunkt eine erste Chance (false) oder eine nicht behandelte Ausnahme (true) ist. Das Datenobjekt für das Ereignis ist das Objekt, das ausgelöst wurde.
ScriptDebugAsyncBreak Gibt an, dass eine asynchrone Unterbrechung des Skripts aufgetreten ist. Dies kann auf etwas wie "Break on entry" oder "break on event" zurückzuführen sein.

Wenn die Schnittstelle entscheidet, wie sie mit dem Debugereignis fortfahren möchte, füllt sie das argument resumeEventKind aus und gibt erfolgreich von der NotifyDebugEvent-Methode zurück. Die Vorgehensweise des Debuggers hängt vom Wert in diesem Feld ab. Es ist ein Mitglied der ScriptExecutionKind-Enumeration, die wie folgt definiert ist:

Enumerant BESCHREIBUNG
ScriptExecutionNormal Gibt an, dass das Skript von der Schnittstelle bis zum nächsten Debugereignis normal ausgeführt werden soll. Dies entspricht einem "go"-Befehl in einer Debugger-Benutzeroberfläche.
ScriptExecutionStepIn Gibt an, dass die Schnittstelle möchte, dass der Skriptdebugger einschritten und die Schnittstelle benachrichtigt, wenn der Schritt in erfolgreich abgeschlossen wurde. Beachten Sie, dass andere Ereignisse in der Zwischenzeit auftreten können. In diesem Fall gibt es möglicherweise nie eine Schrittbenachrichtigung.
ScriptDebugStepOut Gibt an, dass die Schnittstelle den Skriptdebugger ausführen und die Schnittstelle benachrichtigen soll, wenn der Schritt erfolgreich abgeschlossen wurde. Beachten Sie, dass andere Ereignisse in der Zwischenzeit auftreten können. In diesem Fall gibt es möglicherweise nie eine Schrittbenachrichtigung.
ScriptDebugStepOver Gibt an, dass die Schnittstelle möchte, dass der Skriptdebugger einen Schritt ausführen und die Schnittstelle benachrichtigen soll, wenn der Schrittvorgang erfolgreich abgeschlossen wurde. Beachten Sie, dass andere Ereignisse in der Zwischenzeit auftreten können. In diesem Fall gibt es möglicherweise nie eine Schrittbenachrichtigung.

Syntax

HRESULT NotifyDebugEvent(
  ScriptDebugEventInformation *pEventInfo,
  IDataModelScript            *pScript,
  IModelObject                *pEventDataObject,
  ScriptExecutionKind         *resumeEventKind
);

Parameter

pEventInfo

Eine Datenstruktur, die angibt, welches Debugereignis gerade aufgetreten ist.

pScript

Das Skript, in dem das Ereignis aufgetreten ist.

pEventDataObject

Das Datenobjekt für das betreffende Ereignis. Wenn das Ereignis kein Datenobjekt aufweist, wird nullptr übergeben. Ein Datenobjekt ist beispielsweise das Ausnahmeobjekt, das für eine Ausnahmebenachrichtigung ausgelöst wurde.

resumeEventKind

Ein Hinweis von der Schnittstelle zum Debugger, wie der Debugger die Ausführung von Skriptcode nach der Verarbeitung des Debugereignisses fortsetzen soll. Dies wird wie oben beschrieben als Member der ScriptExecutionKind-Enumeration zurückgegeben.

Rückgabewert

Diese Methode gibt HRESULT zurück, das den Erfolg oder Fehler angibt.

Anforderungen

Anforderung Wert
Header dbgmodel.h

Weitere Informationen

IDataModelScriptDebugClient-Schnittstelle