Destinos remotos

Há duas formas diferentes de depuração remota, dependendo de qual computador (cliente remoto ou servidor) é o computador host. O computador host é o computador no qual o mecanismo do depurador está ativo. No outro computador, o mecanismo do depurador está apenas atuando como um proxy retransmitindo comandos e dados para o mecanismo de host.

Todas as operações do depurador , como executar comandos e extensões e carregamento de símbolos, são executadas pelo mecanismo de host. Uma sessão do depurador também é relativa ao mecanismo de host.

Para listar os servidores de depuração e os servidores de processo em execução no momento em um computador, use OutputServers.

Depurando servidores e depurando clientes

Um servidor de depuração é uma instância do mecanismo de depurador que atua como host e escuta conexões de clientes de depuração. O método StartServer informará ao mecanismo do depurador para começar a escutar conexões de clientes de depuração.

Um cliente de depuração é uma instância do mecanismo de depurador que atua como um proxy, enviando comandos de depurador e E/S para o servidor de depuração. A função DebugConnect pode ser usada para se conectar ao servidor de depuração.

O objeto cliente retornado por DebugConnect não é ingressado automaticamente na sessão do depurador no servidor de depuração. O método ConnectSession pode ser usado para ingressar na sessão, sincronizando entrada e saída.

A comunicação entre um servidor de depuração e um cliente de depuração consiste principalmente em comandos de depurador e chamadas RPC enviadas ao servidor e saída de comando enviada de volta para o cliente.

Servidores de processo, servidores de conexão kernel e clientes inteligentes

Servidores de processo e servidores de conexão de kernel são instâncias do mecanismo de depurador que atuam como proxies, escutando conexões de clientes inteligentes e executando operações de memória, processador ou sistema operacional conforme solicitado por esses clientes remotos. Um servidor de processo facilita a depuração de processos em execução no mesmo computador. Um servidor de conexão de kernel facilita a depuração de um destino de depuração de kernel do Windows que está conectado ao computador que está executando o servidor de conexão. Um servidor de processo pode ser iniciado usando o método StartProcessServer ou o programa DbgSrv. O método WaitForProcessServerEnd aguardará o término de um servidor de processo iniciado com StartProcessServer . Um servidor de conexão de kernel pode ser ativado usando o programa KdSrv.

Um cliente inteligente é uma instância do mecanismo de depurador que atua como um mecanismo de host e está conectado a um servidor de processo. O método ConnectProcessServer se conectará a um servidor de processo. Uma vez conectados, os métodos descritos em Destinos do Live User-Mode podem ser usados .

Quando o cliente remoto é concluído com o servidor de processo, ele pode se desconectar usando DisconnectProcessServer ou pode usar EndProcessServer para solicitar que o servidor de processo seja desligado. Para desligar o servidor de processo do computador no qual ele está sendo executado, use o Gerenciador de Tarefas para encerrar o processo. Se a instância do mecanismo de depurador que usou StartProcessServer ainda estiver em execução, ela poderá usar Executar para emitir o comando do depurador .endsrv 0, que encerrará o servidor de processo (essa é uma exceção ao comportamento usual de .endsrv, que geralmente não afeta os servidores de processo).

A comunicação entre um servidor de processo e um cliente inteligente normalmente consiste em operações de memória, processador e sistema operacional de baixo nível e solicitações enviadas do cliente remoto para o servidor. Em seguida, os resultados são enviados de volta para o cliente.