Depuração remota usando WinDbg

A depuração remota envolve dois depuradores em execução em dois locais diferentes. O depurador que executa a depuração é chamado de servidor de depuração. O segundo depurador, chamado de cliente de depuração, controla a sessão de depuração de um local remoto. Para estabelecer uma sessão remota, você deve configurar o servidor de depuração primeiro e, em seguida, ativar o cliente de depuração.

O código que está sendo depurado pode estar em execução no mesmo computador que está executando o servidor de depuração ou pode estar em execução em um computador separado. Se o servidor de depuração estiver executando a depuração no modo de usuário, o processo que está sendo depurado poderá ser executado no mesmo computador que o servidor de depuração. Se o servidor de depuração estiver executando a depuração no modo kernel, o código que está sendo depurado normalmente será executado em um computador de destino separado.

O diagrama a seguir ilustra uma sessão remota em que o servidor de depuração, em execução em um computador host, está executando a depuração no modo kernel do código que está sendo executado em um computador de destino separado.

Diagrama que ilustra computadores remotos, host e de destino conectados para depuração no modo kernel.

Há vários protocolos de transporte que você pode usar para uma conexão de depuração remota: TCP, NPIPE, SPIPE, SSL e porta COM. Suponha que você tenha optado por usar o TCP como o protocolo e tenha optado por usar o WinDbg como o cliente de depuração e o servidor de depuração. Você pode usar o seguinte procedimento para estabelecer uma sessão de depuração remota no modo kernel:

  1. No computador host, abra o WinDbg e estabeleça uma sessão de depuração no modo kernel com um computador de destino. (Veja Depuração no modo kernel ao vivo usando WinDbg (clássico).)

  2. Interrompa escolhendo Interromper no menu Depurar ou pressionando CTRL-Break.

  3. Na janela de comando do depurador, insira o comando a seguir.

    .server tcp:porta=5005

    Observação O número da porta 5005 é arbitrário. O número da porta é sua escolha.

  4. O WinDbg responderá com uma saída semelhante à seguinte.

    Server started.  Client can connect with any of these command lines
    0: <debugger> -remote tcp:Port=5005,Server=YourHostComputer
    
  5. No computador remoto, abra o WinDbg e escolha Conectar à Sessão Remota no menu Arquivo.

  6. Em Cadeia de Conexão, insira a cadeia de caracteres a seguir.

    tcp:Port=5005,Server=YourHostComputer

    onde YourHostComputer é o nome do computador host, que está executando o servidor de depuração.

    Selecione OK.

Usando a linha de comando

Como alternativa ao procedimento fornecido na seção anterior, você pode configurar uma sessão de depuração remota na linha de comando. Suponha que você esteja configurado para estabelecer uma sessão de depuração no modo kernel, entre um computador host e um computador de destino, por meio de um cabo 1394 no canal 32. Você pode usar o seguinte procedimento para estabelecer uma sessão de depuração remota:

  1. No computador host, digite o seguinte comando em uma janela do Prompt de Comando.

    windbg -servidor tcp:porta=5005 -k 1394:canal=32

  2. No computador remoto, digite o seguinte comando em uma janela do Prompt de Comando.

    windbg -remote tcp:Port=5005,Server=YourHostComputer

    onde YourHostComputer é o nome do computador host, que está executando o servidor de depuração.

Importante

O transporte 1394 está disponível para uso no Windows 10, versão 1607 e anterior. Ele não está disponível em versões posteriores do Windows. Você deve fazer a transição de seus projetos para outros transportes, como KDNET usando Ethernet. Para obter mais informações sobre esse transporte, consulte Configurando a depuração automática do kernel de rede KDNET.

Informações adicionais

Há muitas maneiras de estabelecer a depuração remota além das mostradas neste tópico. Para obter informações completas sobre como configurar um servidor de depuração na janela de comando do depurador WinDbg, consulte .server (Criar servidor de depuração). Para obter informações completas sobre como iniciar o WinDbg (e estabelecer a depuração remota) na linha de comando, consulte Opções de linha de comando do WinDbg.