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.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de