Objetos do cliente

Quase toda a interação com o mecanismo de depurador é por meio de objetos de cliente, geralmente simplesmente chamados de clientes. Cada cliente fornece uma implementação das interfaces do mecanismo de nível superior. Cada interface fornece um conjunto diferente de métodos, que 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 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 está conectado à sessão de depuração usando ConnectSession. O comando .clients do depurador lista apenas os clientes primários.

Objetos de retorno de chamada

Objetos de retorno de chamada podem ser registrados em 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 pode 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 pode registrar um retorno de chamada de saída para apresentar a saída do depurador ao usuário ou um depurador pode registrar um retorno de chamada de saída para enviar a saída para 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 pode 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 cliente facilitam a comunicação com instâncias remotas do mecanismo de host. A função DebugConnect cria um objeto cliente conectado a uma instância do 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 cliente, consulte Usando objetos de retorno de chamada. Para obter detalhes sobre como registrar objetos de retorno de chamada, consulte Usando objetos de retorno de chamada.