Partilhar via


Objetos do cliente

Quase toda a interação com o mecanismo de depurador é através de objetos cliente, muitas vezes simplesmente referidos como clientes. Cada cliente fornece uma implementação das interfaces de motor de nível superior. Cada interface fornece um conjunto diferente de métodos, que podem ser usados para interagir com o motor e, através do motor, os alvos. 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 principal. Um cliente torna-se um cliente principal quando é usado para adquirir um destino (por exemplo, ao chamar CreateProcess2) ou quando está conectado à sessão de depuração usando ConnectSession. O comando do depurador .clients lista apenas os clientes primários.

Objetos de retorno de chamada

Os objetos de retorno de chamada podem ser registados para cada cliente. Existem três tipos de objetos de retorno de chamada:

  1. Objetos de Retorno de Chamada de Entrada (ou retornos de chamada de entrada): o motor invoca os 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 eventos): o mecanismo chama retornos de chamada de eventos 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 registar um callback de evento para monitorizar determinados eventos ou realizar ações automáticas quando um evento específico ocorre.

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 que está conectado a uma instância de mecanismo remoto; Os métodos chamados neste 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 registar objetos de retorno, consulte Usando objetos de retorno.