Compartir a través de


Método IDataModelScriptDebugClient::NotifyDebugEvent (dbgmodel.h)

Siempre que se produzca cualquier evento que se divida en el depurador de scripts, el propio código de depuración realiza una llamada a la interfaz a través del método NotifyDebugEvent. Este método es sincrónico. No se reanudará ninguna ejecución del script hasta que la interfaz vuelva del evento. La definición del depurador de scripts está pensada para ser sencilla: no hay ningún evento anidado que requiera procesamiento.

Un evento de depuración se define mediante un registro variant conocido como ScriptDebugEventInformation. El miembro DebugEvent define en gran medida qué campos de la información del evento son válidos.

Define el tipo de evento que se produjo tal y como se describe en un miembro de la enumeración ScriptDebugEvent:

Enumerant Descripción
ScriptDebugBreakpoint Indica que se ha alcanzado un punto de interrupción. La información sobre el punto de interrupción concreto al que se alcanzó se encuentra en la parte BreakpointInformation de la unión que contiene lo siguiente: • BreakpointId: el identificador único del punto de interrupción al que se alcanzó.
ScriptDebugStep Indica que se ha producido un evento de paso. No se proporciona más información.
ScriptDebugException Indica que se ha producido una excepción. La información sobre la excepción concreta que se produjo se encuentra en la posición ExceptionInformaiton de la unión que contiene lo siguiente: • IsUncaught: indica si el punto de interrupción es una primera oportunidad (false) o una excepción no controlada (true). El objeto de datos del evento es el objeto que se produjo.
ScriptDebugAsyncBreak Indica que se ha producido una interrupción asincrónica en el script. Esto puede deberse a algo como "interrupción en la entrada" o "interrupción en el evento".

Cuando la interfaz decide cómo desea continuar desde el evento de depuración, rellena el argumento resumeEventKind y devuelve correctamente desde el método NotifyDebugEvent. El modo en que el depurador continúa depende del valor de este campo. Es miembro de la enumeración ScriptExecutionKind definida de la siguiente manera:

Enumerant Descripción
ScriptExecutionNormal Indica que la interfaz quiere que el script se ejecute normalmente hasta el siguiente evento de depuración. Este es el equivalente de un comando "go" en una interfaz de usuario del depurador.
ScriptExecutionStepIn Indica que la interfaz quiere que el depurador de script entre paso a paso por instrucciones y notifique a la interfaz cuando el paso de se haya completado correctamente. Tenga en cuenta que otros eventos pueden producirse mientras tanto. En ese caso, es posible que nunca haya una notificación de pasos.
ScriptDebugStepOut Indica que la interfaz quiere que el depurador de scripts salga y notifique a la interfaz cuando el paso a paso se haya completado correctamente. Tenga en cuenta que otros eventos pueden producirse mientras tanto. En ese caso, es posible que nunca haya una notificación de pasos.
ScriptDebugStepOver Indica que la interfaz quiere que el depurador de scripts recorra paso a paso por instrucciones y notifique a la interfaz cuando el paso a paso se haya completado correctamente. Tenga en cuenta que otros eventos pueden producirse mientras tanto. En ese caso, es posible que nunca haya una notificación de pasos.

Sintaxis

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

Parámetros

pEventInfo

Estructura de datos que indica qué evento de depuración acaba de producirse.

pScript

Script en el que se produjo el evento.

pEventDataObject

Objeto de datos del evento en cuestión. Si el evento no tiene ningún objeto de datos, se pasa nullptr. Un objeto de datos es, por ejemplo, el objeto de excepción que se produjo para una notificación de excepción.

resumeEventKind

Indicación de la interfaz al depurador de cómo el depurador debe reanudar la ejecución del código de script después del procesamiento del evento de depuración. Se devuelve como miembro de la enumeración ScriptExecutionKind como se ha descrito anteriormente.

Valor devuelto

Este método devuelve HRESULT que indica éxito o error.

Requisitos

Requisito Valor
Header dbgmodel.h

Consulte también

Interfaz IDataModelScriptDebugClient