Partilhar via


Configurar a depuração de kernel de rede KDNET automaticamente

As Ferramentas de Depuração para Windows dão suporte à depuração de kernel em uma rede. Este artigo descreve como configurar a depuração de rede automaticamente usando a ferramenta de configuração kdnet.exe .

O computador que executa o depurador é chamado de computador host e o computador que está sendo depurado é chamado de computador de destino. O computador host deve estar executando o Windows 7 ou posterior e o computador de destino deve estar executando Windows 8 ou posterior.

Determinar o endereço IP do computador host

  1. Confirme se os computadores de destino e host estão conectados a um hub de rede ou alternância usando um cabo de rede apropriado.

  2. No computador host, abra um prompt de comando e insira IPConfig para exibir a configuração de IP.

  3. Na saída do comando, localize o endereço IPv4 do adaptador Ethernet.

...

Ethernet adapter Ethernet:
...

IPv4 Address. . . . . . . . . . . : <YourHostIPAddress>
...

  1. Anote o endereço IPv4 do adaptador de rede que você pretende usar para depuração.

Configurar o host e os computadores de destino

Use o utilitário kdnet.exe para definir automaticamente as configurações do depurador no computador de destino seguindo estas etapas.

  1. Confirme se as Ferramentas de Depuração do Windows estão instaladas no sistema host. Para obter informações sobre como baixar e instalar as ferramentas do depurador, consulte Ferramentas de depuração para Windows.

  2. Localize os arquivos kdnet.exe e VerifiedNICList.xml . Por padrão, os arquivos estão localizados no seguinte local:

    C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
    

    Essas direções pressupõem que ambos os computadores estejam executando uma versão de 64 bits do Windows no destino e no host. Se esse não for o caso, a melhor abordagem é executar a mesma "bitness" de ferramentas no host em que o destino está em execução. Por exemplo, se o destino estiver executando o Windows de 32 bits, execute uma versão 32 do depurador no host. Para obter mais informações, consulte Escolhendo as Ferramentas de Depuração de 32 bits ou 64 bits.

  3. No computador host, copie os dois arquivos para um compartilhamento de rede ou pen drive para que eles estejam disponíveis no computador de destino.

  4. No computador de destino, crie um diretório C:\KDNET e copie os arquivos kdnet.exe e VerifiedNICList.xml para esse diretório.

    Importante

    Antes de usar kdnet.exe para alterar as informações de inicialização, talvez seja necessário suspender temporariamente os recursos de segurança do Windows, como BitLocker e Inicialização Segura no computador de teste. Habilite novamente esses recursos de segurança ao concluir o teste e gerencie adequadamente o computador de teste quando os recursos de segurança estiverem desabilitados.

  5. No computador de destino, abra um prompt de comando como administrador. Insira este comando para verificar se o computador de destino tem um adaptador de rede com suporte:

    C:\KDNET>kdnet.exe
    Network debugging is supported on the following NICs:
    busparams=1.0.0, Broadcom NetXtreme Gigabit Ethernet, Plugged in.  
    This Microsoft hypervisor supports using KDNET in guest VMs.
    
  6. Quando a saída de kdnet.exe indica que há suporte para o adaptador de rede no destino, você pode continuar.

  7. Insira o comando a seguir para definir o endereço IP do sistema host e gerar uma chave de conexão exclusiva. Use o endereço IP ou o nome do sistema host. Escolha um endereço de porta exclusivo para cada par de destino/host com o qual você trabalha, dentro do intervalo recomendado de 50000-50039.

    C:\KDNET>kdnet.exe <HostComputerIPAddress> <YourDebugPort> 
    
    Enabling network debugging on Intel(R) 82577LM Gigabit Network Connection.
    Key=2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p
    
  8. Copie a chave retornada em um arquivo de .txtdo bloco de notas .

Conectar o WinDbg ao destino para depuração de kernel

No computador host, abra WinDbg. No menu Arquivo , selecione Depuração do Kernel. Na caixa de diálogo Depuração do Kernel, abra a guia Net . Cole o número da porta e a chave salvos no bloco de notas .txt arquivo anteriormente. Selecione OK.

Você também pode iniciar uma sessão do WinDbg abrindo um prompt de comando e inserindo o comando a seguir. <YourPort> é a porta que você selecionou anteriormente e <YourKey> é a chave retornada por kdnet.exe anteriormente. Cole a chave que você salvou no bloco de notas .txt arquivo anteriormente.

windbg.exe -k -d net:port=<YourDebugPort>,key=<YourKey> 

O parâmetro opcional -d mostrado no exemplo permite a entrada antecipada. Para obter mais informações, consulte Opções de linha de comando do WinDbg.

Se for solicitado que você permita que o WinDbg acesse a porta por meio do firewall, permita que o WinDbg acesse a porta para todos os três tipos de rede diferentes.

Captura de tela do alerta Segurança do Windows com seleções para permitir o acesso aos três tipos de rede.

Neste ponto, o depurador aguarda o destino se reconectar. O texto é exibido na janela de comando do depurador. Esse texto será semelhante ao seguinte:

Microsoft (R) Windows Debugger Version 1.0.1908.30002 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.

Using NET for debugging
Opened WinSock 2.0
Waiting to reconnect...

Reiniciar o computador de destino

Depois que o depurador estiver no "Aguardando para se reconectar..." stage, reinicialize o computador de destino. Uma maneira de reiniciar o computador é usar esse comando no prompt de comando de um administrador.

shutdown -r -t 0 

Depois que o computador de destino for reiniciado, o depurador deverá se conectar automaticamente.

Dicas de solução de problemas

A depuração de aplicativos deve ser permitida por meio de um firewall

No lado do host, em que o depurador está em execução, todos os tipos de rede devem ser habilitados para permitir que o depurador se comunique com o destino por meio do firewall.

Use o Painel de Controle para permitir o acesso por meio do firewall.

  1. Abra Painel de Controle > Sistema e Segurança e selecione Permitir um aplicativo por meio do Firewall do Windows.

    • (WinDbg) Na lista de aplicativos, localize o TCP (processo do mecanismo WinDbg) (todos).

    • (WinDbg (Clássico)) Na lista de aplicativos, localize o Depurador Simbólico da GUI do Windows e o Depurador de Kernel do Windows.

  2. Use as caixas de seleção para permitir esses dois aplicativos por meio dos três tipos de rede diferentes.

  3. Role para baixo e selecione OK para salvar as alterações de firewall. Reinicie o depurador.

    Captura de tela de Painel de Controle configuração de firewall exibindo o Depurador Simbólico da GUI do Windows e aplicativos do Depurador de Kernel do Windows com todos os três tipos de rede habilitados.

Usar ping para testar a conectividade

Se o depurador atingir o tempo limite e não se conectar, use o comando ping no computador de destino para verificar a conectividade.

   C:\>Ping <HostComputerIPAddress>

Escolhendo uma porta para depuração de rede

Se o depurador atingir o tempo limite e não se conectar, pode ser porque o número de porta padrão de 50000 já está em uso ou está bloqueado.

Você pode escolher qualquer número de porta de 49152 a 65535. O intervalo recomendado é entre 50000 e 50039. A porta escolhida é aberta para acesso exclusivo pelo depurador em execução no computador host.

O intervalo de números de porta que podem ser usados para depuração de rede pode ser limitado pela política de rede da sua empresa. Para determinar se a política da sua empresa limita o intervalo de portas que podem ser usadas para depuração de rede, marcar com os administradores de rede.

Adaptadores de rede com suporte

Se "Não há suporte para depuração de rede em nenhuma das NICs neste computador" quando você executa kdnet.exe, não há suporte para o adaptador de rede.

O computador host pode usar qualquer adaptador de rede, mas o computador de destino deve usar um adaptador de rede compatível com as Ferramentas de Depuração para Windows. Para obter uma lista de adaptadores de rede com suporte, consulte NICs Ethernet com suporte para depuração de kernel de rede em Windows 10 e NICs Ethernet com suporte para depuração de kernel de rede em Windows 8.1.

Habilitar outros tipos de depuração

A partir do Windows 10 Atualização de outubro de 2020 (20H2), há suporte para as seguintes opções para habilitar quatro tipos de depuração:

Qualquer combinação de tipos de depuração pode ser especificada.

Se nenhum tipo de depuração for especificado, a depuração de kernel estará habilitada.

Se o hipervisor e a depuração do kernel estiverem habilitados, a porta do hipervisor será definida <YourDebugPort> como + 1.

Exemplo de uso

Use a opção - bkw para habilitar a depuração de bootmgr, kernel e winload.

C:\>kdnet.exe <HostComputerIPAddress> <YourDebugPort> -bkw

Enabling network debugging on Intel(R) 82577LM Gigabit Network Connection.
Key=2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p

Resumo das opções de tipo de depuração

Opção KNDET Descrição Comando de conjunto equivalente
b habilita a depuração do bootmgr bcdedit /bootdebug {bootmgr} em
h habilita a depuração de hipervisor bcdedit /set hypervisordebug on
k habilita a depuração de kernel bcdedit /debug on
w habilita a depuração de winload bcdedit /bootdebug em

Especificar parâmetros de barramento

Se o kdnet não conseguir determinar automaticamente os parâmetros de barramento para o transporte, especifique-os na linha de comando com a opção /busparams usando essa sintaxe.

kdnet.exe /busparams [b.d.f] [host] [port] [-[b][h][k][w]]

b.d.f especifica os parâmetros de barramento do dispositivo a ser configurado.

Use Gerenciador de Dispositivos no computador de destino para determinar os números de barramento, dispositivo e função PCI para o adaptador que você deseja usar para depuração. Para parâmetros de barramento, insira b. d. f em que b, d e f são o número do barramento, o número do dispositivo e o número da função do adaptador. Esses valores são exibidos em Gerenciador de Dispositivos em Local na guia Geral.

Por exemplo:

C:\>kdnet.exe /busparams 0.29.7 <HostComputerIPAddress> <YourDebugPort> -bkw

Confira também