Compartilhar via


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

Sempre que ocorre qualquer evento que interrompa o depurador de script, o próprio código de depuração faz uma chamada para a interface por meio do método NotifyDebugEvent. Esse método é síncrono. Nenhuma execução do script será retomada até que a interface retorne do evento. A definição do depurador de script destina-se a ser simples: não há absolutamente nenhum evento aninhado que exija processamento.

Um evento de depuração é definido por um registro variante conhecido como ScriptDebugEventInformation. Quais campos nas informações de evento são válidos é amplamente definido pelo membro DebugEvent.

Ele define o tipo de evento que ocorreu conforme descrito por um membro da enumeração ScriptDebugEvent:

Enumerante Descrição
ScriptDebugBreakpoint Indica que um ponto de interrupção foi atingido. Informações sobre o ponto de interrupção específico que foi atingido estão contidas na parte BreakpointInformation da união que contém o seguinte: • BreakpointId: o identificador exclusivo do ponto de interrupção que foi atingido.
ScriptDebugStep Indica que ocorreu um evento de etapa. Nenhuma informação adicional é fornecida.
ScriptDebugException Indica que ocorreu uma exceção. Informações sobre a exceção específica que ocorreu estão contidas na posição ExceptionInformaiton da união que contém o seguinte: • IsUncaught: indica se o ponto de interrupção é ou não uma primeira chance (false) ou uma exceção sem tratamento (true). O objeto de dados para o evento é o objeto que foi lançado.
ScriptDebugAsyncBreak Indica que ocorreu uma quebra assíncrona no script. Isso pode ser devido a algo como "interromper na entrada" ou "interromper o evento"

Quando a interface decide como deseja proceder do evento de depuração, ela preenche o argumento resumeEventKind e retorna com êxito do método NotifyDebugEvent. A forma como o depurador prossegue depende do valor neste campo. Ele é um membro da enumeração ScriptExecutionKind definida da seguinte maneira:

Enumerante Descrição
ScriptExecutionNormal Indica que a interface gostaria que o script fosse executado normalmente até o próximo evento de depuração. Isso é o equivalente a um comando "go" em uma interface do usuário do depurador.
ScriptExecutionStepIn Indica que a interface deseja que o depurador de script entre e notifique a interface quando a etapa em for concluída com êxito. Observe que outros eventos podem ocorrer nesse ínterim. Nesse caso, pode nunca haver uma notificação de etapa.
ScriptDebugStepOut Indica que a interface deseja que o depurador de script saia e notifique a interface quando a saída for concluída com êxito. Observe que outros eventos podem ocorrer nesse ínterim. Nesse caso, pode nunca haver uma notificação de etapa.
ScriptDebugStepOver Indica que a interface deseja que o depurador de script percorram e notifiquem a interface quando a etapa for concluída com êxito. Observe que outros eventos podem ocorrer nesse ínterim. Nesse caso, talvez nunca haja uma notificação de etapa

Sintaxe

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

Parâmetros

pEventInfo

Uma estrutura de dados que indica qual evento de depuração acabou de ocorrer.

pScript

O script no qual o evento ocorreu.

pEventDataObject

O objeto de dados do evento em questão. Se o evento não tiver nenhum objeto de dados, nullptr será passado. Um objeto de dados é, por exemplo, o objeto de exceção que foi lançado para uma notificação de exceção.

resumeEventKind

Uma indicação da interface para o depurador de como o depurador deve retomar a execução do código de script após o processamento do evento de depuração. Isso é retornado como um membro da enumeração ScriptExecutionKind, conforme descrito acima.

Retornar valor

Esse método retorna HRESULT que indica êxito ou falha.

Requisitos

Requisito Valor
Cabeçalho dbgmodel.h

Confira também

Interface IDataModelScriptDebugClient