Escolhendo o melhor método de depuração remota
Há dois métodos principais de execução de depuração remota, bem como vários métodos adicionais e um grande número de métodos de combinação.
Aqui estão algumas dicas para ajudá-lo a escolher a melhor técnica.
A depuração remota por meio do depurador geralmente é o melhor método. Se você simplesmente tiver um servidor e um cliente e eles puderem se conectar livremente uns aos outros, os mesmos binários do depurador serão instalados no cliente e no servidor, e o técnico de depuração que estará operando o cliente poderá falar com alguém na sala com o servidor, esse é o método recomendado.
O cliente e o servidor podem estar executando qualquer versão do Windows. Eles não precisam estar executando a mesma versão que os outros.
Se o cliente não conseguir enviar uma solicitação de conexão para o servidor, mas o servidor puder enviar uma solicitação ao cliente, você poderá usar a depuração remota por meio do depurador com uma conexão inversa usando o parâmetro clicon .
A depuração remota por meio de remote.exe é usada para controlar remotamente uma janela do Prompt de Comando. Ele pode ser usado para controlar remotamente KD, CDB ou NTSD. Ele não pode ser usado com WinDbg.
Se o cliente não tiver cópias dos binários do depurador, você deverá usar o método remote.exe.
Um servidor de processo ou um servidor de conexão KD poderá ser usado se o técnico de depuração não conseguir falar com alguém na sala com o servidor. Todo o trabalho de depuração real é feito pelo cliente (chamado de cliente inteligente); isso remove a necessidade de ter uma segunda pessoa presente no próprio servidor.
Os servidores de processo são usados para depuração no modo de usuário; Os servidores de conexão KD são usados para depuração no modo kernel. Além dessa distinção, eles se comportam de maneiras semelhantes.
Esse método também será útil se o computador em que o servidor será executado não puder lidar com cargas de processo pesadas ou se o técnico que executa o cliente tiver acesso a arquivos de símbolo ou arquivos de origem confidenciais e não puderem ser acessados pelo servidor. No entanto, esse método não é tão rápido ou eficiente quanto a depuração remota por meio do depurador. Esse método não pode ser usado para depuração de arquivo de despejo.
Consulte Servidores de Processo (Modo de Usuário) e Servidores de Conexão KD (Modo Kernel) para obter detalhes.
Um repetidor é um servidor proxy leve que retransmite dados entre dois computadores. Você pode adicionar um repetidor entre o cliente e o servidor se estiver executando a depuração remota por meio do depurador ou se estiver usando um servidor de processo.
O uso de um repetidor poderá ser necessário se o cliente e o servidor não puderem se comunicar diretamente entre si, mas cada um pode acessar um computador externo. Você também pode usar conexões inversas com repetidores. É até possível usar dois repetidores em uma linha, mas isso raramente é necessário.
Confira Repetidores para obter detalhes.
Também é possível controlar o CDB (ou NTSD) do depurador de kernel. Esta é mais uma forma de depuração remota. Consulte Controlando o depurador de User-Mode do Depurador do Kernel para obter detalhes.
Variações em todos esses métodos são possíveis.
É possível encadear vários computadores juntos para aproveitar mais de um método de transporte. Você pode criar sequências de transporte complicadas que levam em conta onde o técnico está, onde os símbolos estão localizados e se há firewalls impedindo conexões em determinadas direções. Consulte Cenários avançados de depuração remota para obter alguns exemplos.
Você pode até mesmo executar a depuração remota em um único computador. Por exemplo, pode ser útil iniciar um servidor de processo de baixo privilégio e, em seguida, conectar-se a ele com um cliente inteligente de alto privilégio.