Compartilhar via


Método IDebugControl::SetInterrupt (dbgeng.h)

O método SetInterrupt registra uma interrupção do usuário ou interrompe o depurador.

Sintaxe

HRESULT SetInterrupt(
  [in] ULONG Flags
);

Parâmetros

[in] Flags

Especifica o tipo de interrupção a ser registrado. Os sinalizadores podem obter um dos valores listados na tabela a seguir.

Valor Descrição
DEBUG_INTERRUPT_ACTIVE Se o destino estiver em execução, o mecanismo solicitará uma quebra no depurador. Essa solicitação pode chegar ao tempo limite. Para obter mais informações, consulte a seção "Comentários".

Caso contrário, quando o destino for suspenso, o mecanismo registrará uma interrupção do usuário.

DEBUG_INTERRUPT_PASSIVE O mecanismo registrará uma interrupção do usuário.
DEBUG_INTERRUPT_EXIT Se houver atualmente uma chamada WaitForEvent em execução, o mecanismo o forçará a retornar. Se houver comandos de depurador que causem a execução no destino , por exemplo, g (Go) e p (Etapa), o mecanismo os forçará a concluir. Isso não força uma invasão no depurador, portanto, o destino pode não ser suspenso. Nesse caso, a chamada WaitForEvent retornará E_PENDING.

Caso contrário, quando o destino for suspenso, registre uma interrupção do usuário.

Retornar valor

Esse método também pode retornar valores de erro. Consulte Valores retornados para obter mais detalhes.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.

Comentários

Esse método pode ser chamado a qualquer momento e de qualquer thread. Depois que a interrupção tiver sido registrada, esse método retornará imediatamente.

Se Flags for DEBUG_INTERRUPT_ACTIVE e a interrupção atingir o tempo limite, o mecanismo gerará um evento de exceção sintética. Esse evento será enviado para o método IDebugEventCallbacks::Exception do retorno de chamada de evento. A quantidade de tempo antes do tempo limite de interrupção pode ser definida usando SetInterruptTimeout.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho dbgeng.h (inclua Dbgeng.h)

Confira também

GetInterrupt

GetInterruptTimeout

Idebugcontrol

IDebugControl2

IDebugControl3

SetInterruptTimeout