Condividi tramite


Metodo IDataModelScriptDebugClient::NotifyDebugEvent (dbgmodel.h)

Ogni volta che si verifica un evento che si interrompe nel debugger di script, il codice di debug stesso effettua una chiamata all'interfaccia tramite il metodo NotifyDebugEvent. Questo metodo è sincrono. Non verrà ripresa alcuna esecuzione dello script fino a quando l'interfaccia non viene restituita dall'evento. La definizione del debugger di script è progettata per essere semplice: non esistono eventi annidati che richiedono l'elaborazione.

Un evento di debug è definito da un record variant noto come ScriptDebugEventInformation. I campi nelle informazioni sugli eventi sono in gran parte definiti dal membro DebugEvent.

Definisce il tipo di evento che si è verificato come descritto da un membro dell'enumerazione ScriptDebugEvent:

Enumerant Descrizione
ScriptDebugBreakpoint Indica che è stato raggiunto un punto di interruzione. Le informazioni sul punto di interruzione specifico raggiunto sono contenute nella parte BreakpointInformation dell'unione che contiene quanto segue: • BreakpointId: Identificatore univoco per il punto di interruzione raggiunto.
ScriptDebugStep Indica che si è verificato un evento di passaggio. Non vengono fornite ulteriori informazioni.
ScriptDebugException Indica che si è verificata un'eccezione. Informazioni sull'eccezione particolare che si è verificata sono contenute nella posizione ExceptionInformaiton dell'unione che contiene quanto segue: • IsUncaught: Indica se il punto di interruzione è una prima probabilità (false) o un'eccezione non gestita (true). L'oggetto dati per l'evento è l'oggetto generato.
ScriptDebugAsyncBreak Indica che si è verificata un'interruzione asincrona nello script. Questo potrebbe essere dovuto a qualcosa di simile a "interruzione all'ingresso" o "interruzione in caso di evento"

Quando l'interfaccia decide come procedere dall'evento di debug, compila l'argomento resumeEventKind e restituisce correttamente dal metodo NotifyDebugEvent. Il modo in cui il debugger procede dipende dal valore in questo campo. È un membro dell'enumerazione ScriptExecutionKind definita come segue:

Enumerant Descrizione
ScriptExecutionNormal Indica che l'interfaccia desidera che lo script venga eseguito normalmente fino all'evento di debug successivo. Si tratta dell'equivalente di un comando "go" in un'interfaccia utente del debugger.
ScriptExecutionStepIn Indica che l'interfaccia desidera che il debugger dello script eseestra e comunicherà all'interfaccia quando il passaggio in è stato completato correttamente. Si noti che altri eventi possono verificarsi nel frattempo. In tal caso, potrebbe non esserci mai una notifica di passaggio.
ScriptDebugStepOut Indica che l'interfaccia desidera che il debugger dello script esesce e comunicherà all'interfaccia quando l'istruzione out è stata completata correttamente. Si noti che altri eventi possono verificarsi nel frattempo. In tal caso, potrebbe non esserci mai una notifica di passaggio.
ScriptDebugStepOver Indica che l'interfaccia desidera che il debugger dello script eseestra e comunicherà all'interfaccia quando il passaggio è stato completato correttamente. Si noti che altri eventi possono verificarsi nel frattempo. In tal caso, potrebbe non esserci mai una notifica di passaggio

Sintassi

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

Parametri

pEventInfo

Struttura di dati che indica l'evento di debug appena verificato.

pScript

Script in cui si è verificato l'evento.

pEventDataObject

Oggetto dati per l'evento in questione. Se l'evento non ha alcun oggetto dati, viene passato nullptr. Un oggetto dati è, ad esempio, l'oggetto eccezione generato per una notifica di eccezione.

resumeEventKind

Indicazione dall'interfaccia al debugger di come il debugger deve riprendere l'esecuzione del codice script dopo l'elaborazione dell'evento di debug. Tale valore viene restituito come membro dell'enumerazione ScriptExecutionKind come descritto in precedenza.

Valore restituito

Questo metodo restituisce HRESULT che indica l'esito positivo o negativo.

Fabbisogno

Requisito Valore
intestazione dbgmodel.h

Vedere anche

'interfaccia IDataModelScriptDebugClient