Partilhar via


Depuração remota usando WinDbg

A depuração remota permite depurar o código em execução em um computador diferente. Este guia mostra como configurar um servidor de depuração e conectar um cliente de depuração para controlar sua sessão de depuração remotamente. Você aprenderá as etapas exatas para configurar ambos os componentes.

O código que você está depurando pode ser executado no mesmo computador que o servidor de depuração ou pode ser executado em um computador separado. Se o servidor de depuração executar a depuração no modo de usuário, o processo que você está depurando poderá ser executado no mesmo computador que o servidor de depuração. Se o servidor de depuração executar a depuração no modo kernel, o código que você está depurando normalmente será executado em um computador de destino separado.

Este diagrama mostra como os três computadores trabalham juntos em uma configuração típica de depuração remota:

Captura de ecrã do diagrama ilustrando computadores host, de destino e remotos conectados para depuração em modo kernel.

Importante

A depuração remota expõe o seu sistema a potenciais riscos de segurança. Antes de prosseguir:

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

  1. No computador host, abra o WinDbg e estabeleça uma sessão de depuração em modo kernel com um computador de destino. (Consulte Live Kernel-Mode Debugging Using WinDbg (Classic).)

  2. Interrompa a execução escolhendo a opção Break no menu Debug ou pressionando CTRL-Break.

  3. Na janela de comando do depurador , digite o seguinte comando.

    TCP .server:porta=5005

    Observação

    O número da porta 5005 é arbitrário. Você escolhe o número da porta.

  4. WinDbg responde com saída semelhante à seguinte. Copie a cadeia de conexão — você precisará dela para a próxima etapa.

    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 seguinte cadeia.

    tcp:Port=5005,Server=YourHostComputer

    onde YourHostComputer é o nome do seu computador host, que executa o servidor de depuração.

    Selecione OK.

Usando a linha de comando

Como alternativa ao procedimento na seção anterior, você pode configurar uma sessão de depuração remota na linha de comando. Suponha que pretendas estabelecer uma sessão de depuração em modo kernel entre um computador host e um computador de destino através de cabo FireWire 1394 no canal 32. Use o procedimento a seguir 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 -server tcp:port=5005 -k 1394:channel=32

  2. Aguarde até que o servidor inicie. Você verá uma mensagem de confirmação com os detalhes da conexão. Copie esta cadeia de conexão antes de prosseguir para a etapa 3.

  3. 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 seu computador host, que executa o servidor de depuração.

Importante

O transporte 1394 está disponível para uso no Windows 10, versão 1607 e anteriores. Não está disponível em versões posteriores do Windows. Transfira os seus projetos para outros transportes, como KDNET, utilizando Ethernet. Para obter mais informações sobre esse transporte, consulte Configurando a depuração automática do kernel da rede KDNET.

Próximos passos

Você pode estabelecer a depuração remota de muitas outras formas além das apresentadas neste tópico.