Configurar a depuração automática do kernel de rede KDNET
As Ferramentas de Depuração para Windows dão suporte à depuração de kernel em uma rede. Este artigo descreve como configurar automaticamente a depuração de rede 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 o Windows 8 ou posterior.
Determinar o endereço IP do computador host.
Confirme se os PCs de destino e host estão conectados a um hub ou comutador de rede usando um cabo de rede indicado.
No computador host, abra um prompt de comando e digite
IPConfig
para exibir a configuração do IP.Na saída do comando, localize o endereço IPv4 do adaptador Ethernet.
...
Ethernet adapter Ethernet:
...
IPv4 Address. . . . . . . . . . . : <YourHostIPAddress>
...
Como alternativa, use Configurações, Rede e Internet, Ethernet para coletar informações do endereço IPv4.
- Anote o endereço IPv4 do adaptador de rede que você pretende usar para depuração.
Configurar os computadores host e de destino
Use o utilitário kdnet.exe para definir automaticamente as configurações do depurador no PC de destino seguindo estas etapas.
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.
Localize os arquivos kdnet.exe e VerifiedNICList.xml. Por padrão, os arquivos estão no seguinte local:
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
Essas instruções pressupõem que ambos os PCs 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 será executar o mesmo "bitness" de ferramentas no host que o destino está executando. Por exemplo, se o destino estiver executando o Windows de 32 bits, execute uma versão de 32 do depurador no host. Para obter mais informações, consulte Escolher as ferramentas de depuração de 32 ou 64 bits.
No computador host, copie os dois arquivos para um compartilhamento de rede ou pen drive, de maneira que eles estejam disponíveis no computador de destino.
No computador de destino, crie um diretório C:\KDNET e copie os arquivo kdnet.exe e VerifiedNICList.xml para esse diretório.
Importante
Antes de usar o kdnet.exe para alterar as informações de inicialização, talvez você precise suspender temporariamente os recursos de segurança do Windows, como o BitLocker e a Inicialização Segura no PC de teste. Reabilite esses recursos de segurança quando o teste terminar e gerencie devidamente o PC de teste, quando os recursos de segurança estiverem desabilitados.
No computador de destino, abra um prompt de comando como administrador. Digite este comando para verificar se o computador de destino tem um adaptador de rede compatível:
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.
Quando a saída de kdnet.exe indicar que o adaptador de rede no destino é compatível, você poderá continuar.
Digite 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 a 50039.
C:\KDNET>kdnet.exe <HostComputerIPAddress> <YourDebugPort> Enabling network debugging on Intel(R) 82577LM Gigabit Network Connection. Key=2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p
Copie a chave retornada para um arquivo .txt do Bloco de Notas.
Conectar o WinDbg ao destino para depuração do kernel
No computador host, abra o WinDbg. No menu Arquivo, selecione Depuração de kernel. Na caixa de diálogo Depuração do Kernel, abra Rede. Cole o número da porta e a chave salva no arquivo .txt do Bloco de Notas anteriormente. Selecione OK.
Você também pode iniciar uma sessão do WinDbg abrindo uma janela do prompt de comando e digitando o comando a seguir. <YourPort> é a porta que você selecionou anteriormente e <YourKey> é a chave que foi retornada por kdnet.exe antes. Cole a chave que você salvou no arquivo .txt do Bloco de Notas anteriormente.
windbg.exe -k -d net:port=<YourDebugPort>,key=<YourKey>
O parâmetro -d
opcional mostrado no exemplo permite a invasão antecipada. Para obter mais informações, consulte Opções da linha de comando do WinDbg.
Se você for solicitado a permitir que o WinDbg acesse a porta por meio do firewall, permita que o WinDbg acesse a porta para os três tipos de rede diferentes.
Neste ponto, o depurador aguarda a reconexão do destino. 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 PC de destino
Quando o depurador estiver no estágio "Aguardando reconexão..." , reinicie o computador de destino. Uma maneira de reiniciar o PC é usar esse comando no prompt de comando de um administrador.
shutdown -r -t 0
Depois que o PC de destino for reiniciado, o depurador deverá se conectar automaticamente.
Dicas de solução de problemas
Os aplicativos de depuração devem ser permitidos por meio de um firewall
No lado do host, no qual o depurador está em execução, todos os tipos de rede devem estar habilitados para permitir que o depurador se comunique com o destino por meio do firewall.
Use o Painel de Controle para permitir o acesso pelo firewall.
Abra o Painel de Controle > Sistema e Segurança e selecione Permitir um aplicativo pelo Firewall do Windows.
(WinDbg) Na lista de aplicativos, localize Processo do mecanismo do WinDbg (TCP) (todos).
(WinDbg Clássico) Na lista de aplicativos, localize Windows GUI Symbolic Debugger e Windows Kernel Debugger.
Use as caixas de seleção para permitir esses dois aplicativos em todos os três tipos de rede diferentes.
Role para baixo e selecione OK para salvar as alterações do firewall. Reinicie o depurador.
Usar ping para testar a conectividade
Se o depurador expirar e não se conectar, use o comando ping no PC de destino para verificar a conectividade.
C:\>Ping <HostComputerIPAddress>
Escolha de 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 da porta padrão de 50000 já está em uso ou está bloqueado.
Você pode escolher qualquer número de porta entre 49152 e 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 pode ser usado para depuração de rede pode ser limitado pela diretiva de rede da empresa. Para determinar se a política da empresa limita o intervalo de portas que podem ser usadas para depuração de rede, consulte os administradores de rede.
Adaptadores de rede aceitos
Se "A depuração de rede não é compatível em nenhuma das NICs neste computador" for exibida quando você executar kdnet.exe, o adaptador de rede não será compatível.
O computador host pode usar qualquer adaptador de rede, mas o computador de destino deve usar um adaptador de rede aceito pelas Ferramentas de depuração para Windows. Para obter uma lista de adaptadores de rede suportados, consulte NICs Ethernet suportadas para depuração de kernel de rede no Windows 10 e NICs Ethernet suportadas para depuração de kernel de rede no Windows 8.1.
Habilitar outros tipos de depuração
A partir da atualização de outubro de 2020 do Windows 10 (20H2), as seguintes opções são compatíveis para habilitar quatro tipos de depuração:
b – habilita a depuração de bootmgr. Consulte BCDEdit /bootdebug.
w - habilita a depuração de winload. Consulte BCDEdit /bootdebug.
H – habilita a depuração de hipervisor. Consulte BCDEdit /hypervisorsettings.
k – habilita a depuração do kernel. Consulte Introdução ao WinDbg (modo kernel).
Qualquer combinação de tipos de depuração pode ser especificada.
Se nenhum tipo de depuração for especificado, a depuração do kernel será habilitada.
Se a depuração do hipervisor e do kernel estiverem habilitadas, a porta do hipervisor será definida como <YourDebugPort>
+ 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 do tipo de depuração
Opção KNDET | Descrição | Comando set equivalente |
---|---|---|
b | habilita a depuração de bootmgr | bcdedit /bootdebug {bootmgr} on |
h | habilita a depuração de hipervisor | bcdedit /set hypervisordebug on |
k | habilita a depuração do kernel | bcdedit /debug on |
w | habilita a depuração de winload | bcdedit /bootdebug on |
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 o 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 na depuração. Para parâmetros de barramento, insira b.d.f em que b, d e f são o número de barramento, o número do dispositivo e o número da função do adaptador. Esses valores são exibidos no Gerenciador de Dispositivos em Local na guia Geral.
Por exemplo:
C:\>kdnet.exe /busparams 0.29.7 <HostComputerIPAddress> <YourDebugPort> -bkw