Compartilhar via


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

Sempre que ocorrer 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 é definido em grande parte 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 do 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 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 definido 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 scripts entre e notifique 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.
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, talvez nunca haja uma notificação de etapa.
ScriptDebugStepOver Indica que a interface deseja que o depurador de scripts percorre e notifique 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 gerado 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.

Valor de retorno

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

Requisitos

Requisito Valor
cabeçalho dbgmodel.h

Consulte também

interface IDataModelScriptDebugClient