Partilhar via


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 do 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 do 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 de código no modo kernel em execução em um computador de destino separado.

Diagrama ilustrando 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 escolhido usar tcp como o protocolo e você optou por usar WinDbg como o cliente de depuração e o servidor de depuração. Você pode usar o procedimento a seguir para estabelecer uma sessão remota de depuração do 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. (Consulte Live Kernel-Mode Debugging using WinDbg (Classic).)

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

  3. Na janela Comando do Depurador, insira o comando a seguir.

    .server tcp:port=5005

    Nota 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 WinDbg e escolha Conectar-se à Sessão Remota no menu Arquivo .

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

    tcp:Port=5005,Server=YourHostComputer

    em que 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 dado 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, em 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, insira o comando a seguir em uma janela do Prompt de Comando.

    windbg -server tcp:port=5005 -k 1394:channel=32

  2. No computador remoto, insira o comando a seguir em uma janela do Prompt de Comando.

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

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

Informações adicionais

Há várias maneiras de estabelecer a depuração remota diferente daquelas mostradas neste tópico. Para obter informações completas sobre como configurar um servidor de depuração na janela 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 do WinDbg Command-Line.