Objetos de cliente

Quase toda a interação com o mecanismo do depurador é por meio de objetos de cliente, geralmente chamados de clientes. Cada cliente fornece uma implementação das interfaces de mecanismo de nível superior. Cada interface fornece um conjunto diferente de métodos, que pode ser usado 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 Debugger . clients lista somente 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 poderia registrar um retorno de chamada de entrada para fornecer ao mecanismo entrada do usuário, ou um depurador pode registrar um retorno de chamada de entrada para fornecer ao mecanismo 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 quando há uma alteração no estado do mecanismo). Por exemplo, uma biblioteca de extensões do depurador poderia registrar um retorno de chamada de evento para monitorar determinados eventos ou executar ações automatizadas quando um evento específico ocorrer.

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 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 de 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.