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 absolutamente ningún evento anidado que requiera procesamiento.

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

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

Enumerant Descripción
ScriptDebugBreakpoint Indica que se alcanzó un punto de interrupción. La información sobre el punto de interrupción concreto 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 que se alcanzó.
ScriptDebugStep Indica que se produjo un evento de paso. No se proporciona más información.
ScriptDebugException Indica que se produjo 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 produjo una interrupción asincrónica en el script. Esto puede deberse a algo como "interrumpir en la entrada" o "interrumpir 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. La forma en que continúa el depurador 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 desea 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 desea que el depurador de scripts avance paso a paso por instrucciones y notifique a la interfaz cuando el paso en se haya completado correctamente. Tenga en cuenta que otros eventos pueden producirse provisionalmente. En ese caso, es posible que nunca haya una notificación de paso.
ScriptDebugStepOut Indica que la interfaz desea que el depurador de scripts salga y notifique a la interfaz cuando el paso a paso de salida se haya completado correctamente. Tenga en cuenta que otros eventos pueden producirse provisionalmente. En ese caso, es posible que nunca haya una notificación de paso.
ScriptDebugStepOver Indica que la interfaz desea que el depurador de scripts supere y notifique la interfaz cuando el paso a paso por encima se haya completado correctamente. Tenga en cuenta que otros eventos pueden producirse provisionalmente. En ese caso, es posible que nunca haya una notificación de paso

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. Este valor se devuelve como miembro de la enumeración ScriptExecutionKind como se describió anteriormente.

Valor devuelto

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

Requisitos

Requisito Valor
encabezado de dbgmodel.h

Consulte también

interfaz IDataModelScriptDebugClient