Compartilhar via


Objetos de cliente

Quase toda a interação com o mecanismo do depurador é feita por meio de objetos de cliente, às vezes referidos apenas como clientes. Cada cliente fornece uma implementação das interfaces do mecanismo de nível superior. Cada interface fornece um conjunto diferente de métodos, os quais podem ser usados para interagir com o mecanismo e, por meio do mecanismo, os destinos. Uma instância do mecanismo pode ter muitos clientes, cada um com seu próprio estado.

Clientes primários

Um cliente primário é um cliente que ingressou na sessão de depuração atual. Inicialmente, quando um novo objeto de cliente é criado, ele não é um cliente primário. Um cliente se torna um cliente primário quando é usado para adquirir um destino (por exemplo, chamando CreateProcess2) ou é conectado à sessão de depuração usando ConnectSession. O comando de depurador .clients lista apenas os clientes primários.

Objetos de retorno de chamada

Os objetos de retorno de chamada podem ser registrados com cada cliente. Há três tipos de objetos de retorno de chamada:

  1. Objetos de retorno de chamada de entrada (ou retornos de chamada de entrada): o mecanismo chama retornos de chamada de entrada para solicitar entrada. Por exemplo, um depurador com uma janela de console poderá registrar um retorno de chamada de entrada para fornecer ao mecanismo a entrada do usuário, ou um depurador pode registrar um retorno de chamada de entrada para fornecer ao mecanismo a entrada de um arquivo.

  2. Objetos de retorno de chamada de saída (ou retornos de chamada de saída): o mecanismo chama retornos de chamada de saída para exibir a saída. Por exemplo, um depurador com uma janela de console poderá registrar um retorno de chamada de saída para apresentar a saída do depurador ao usuário, ou um depurador poderá registrar um retorno de chamada de saída para enviar a saída a um arquivo de log.

  3. Objetos de retorno de chamada de evento (ou retornos de chamada de evento): o mecanismo chama retornos de chamada de evento sempre que um evento ocorre em um destino (ou há uma alteração no estado do mecanismo). Por exemplo, uma biblioteca de extensão do depurador poderá registrar um retorno de chamada de evento para monitorar determinados eventos ou executar ações automatizadas quando ocorrer um evento específico.

Depuração remota

Os objetos de cliente facilitam a comunicação com instâncias remotas do mecanismo de host. A função DebugConnect cria um objeto de cliente que está conectado a uma instância de mecanismo remoto; os métodos chamados nesse cliente são executados pelo mecanismo remoto e os objetos de retorno de chamada registrados localmente com o cliente serão chamados quando o mecanismo remoto fizer chamadas de retorno de chamada.

Informações adicionais

Para obter detalhes sobre como criar e usar objetos de cliente, confira Usar objetos de retorno de chamada. Para obter detalhes sobre como registrar objetos de retorno de chamada, confira Usar objetos de retorno de chamada.