Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tópico descreve como configurar uma conexão de depuração de kernel com uma máquina virtual Hyper-V (VM).
Instalação da máquina virtual Hyper-V
Para depurar uma máquina virtual (VM) do Hyper-V de 2ª geração, siga estas etapas.
1. Criar uma VM com o Windows instalado
Para obter informações sobre como criar uma VM, consulte Criar uma máquina virtual com o Hyper-V.
2. Definir um comutador virtual externo
Para se comunicar com a VM, é possível usar um comutador de rede externa virtual. Para obter informações sobre como criar um comutador de rede externo, consulte Criar uma rede virtual.
Quando o comutador de rede externo é configurado, as opções a seguir devem ser definidas.
| Opção | Valor |
|---|---|
| Tipo de Conexão | Rede Externa |
| Permitir que o sistema operacional de gerenciamento compartilhe esse adaptador de rede | Habilitado |
| ID DA VLAN | Desabilitado |
3. Desabilitar Inicialização Segura
Para permitir que o utilitário kdnet atualize as configurações de inicialização BCDEdit, desabilite temporariamente a inicialização segura na máquina virtual seguindo estas etapas.
Carregue o gerenciador de Hyper-V e selecione as propriedades da VM.
Selecione as configurações de segurança .
Desmarque a caixa de seleção Habilitar Inicialização Segura .
Selecione OK para guardar as definições.
Você pode reativar a Inicialização Segura depois de concluir a depuração e desativar a depuração do kernel na VM de destino.
4. Instalar as Ferramentas de Depuração para Windows
As ferramentas de depuração são usadas para o depurador e o utilitário kdnet e devem ser instaladas. Para obter informações sobre como baixar e instalar as ferramentas de depuração, consulte Ferramentas de Depuração para Windows.
Como configurar a depuração de rede de uma máquina virtual ― KDNET
Gravar o endereço IP do host
Para executar o depurador de host no mesmo PC que a máquina virtual de destino, siga estas etapas.
No sistema operacional do computador host, abra uma janela do Prompt de Comando e insira IPConfig para exibir a configuração de IP.
Na saída do comando, localize o adaptador Ethernet que você configurou como o Comutador Virtual Externo.
... Ethernet adapter vEthernet (External Virtual Switch): ... IPv4 Address. . . . . . . . . . . : <YourHostIPAddress> ...
Dica
Pode haver várias entradas de adaptador com nomes semelhantes. Verifique e localize o comutador virtual que você criou.
Registre o endereço IPv4 do Comutador Virtual Externo que será usado como o endereço de host para depuração.
Para confirmar a conectividade entre o destino e o computador host, abra uma janela de prompt de comando com privilégios elevados no computador de destino e insira o comando a seguir, em que YourHostIPAddress é o endereço IP do computador host.
ping -4 <YourHostIPAddress>
Configurando o computador de destino da VM
Use o utilitário kdnet.exe para definir automaticamente as configurações do depurador no computador de destino seguindo estas etapas.
- Localize os arquivos kdnet.exe e VerifiedNICList.xml do WDK. Por padrão, eles estão localizados aqui.
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
Observação
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 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 32 do depurador no host. Para obter mais informações, consulte Escolhendo as ferramentas de depuração de 32 bits ou 64 bits.
Para permitir que a chave longa utilizada possa ser copiada e colada, habilite o suporte aprimorado de sessão. Na janela da VM, no menu suspenso Exibir, ative Sessão avançada.
No computador de VM de destino, crie um diretório C:\KDNET e copie os arquivos kdnet.exe e VerifiedNICList.xml para esse diretório.
No computador de destino, abra uma janela do 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 Network debugging is supported on the following NICs: busparams=0.25.0, Intel(R) 82579LM Gigabit Network Connection, KDNET is running on this NIC.kdnet.exeDigite este comando para definir o endereço IP do sistema host e gerar uma chave de conexão exclusiva. Use o endereço IP do sistema host que você registrou anteriormente. Escolha um endereço de porta exclusivo para cada par de destino/host com o qual você trabalha, dentro do intervalo de 50000 a 50039. Para este exemplo, selecionaremos 50005.
C:\>kdnet <YourIPAddress> <YourDebugPort> Enabling network debugging on Microsoft Hypervisor Virtual Machine. Key=3u8smyv477z20.2owh9gl90gbxx.3sfsihzgq7di4.nh8ugnmzb4l7 To debug this vm, run the following command on your debugger host machine. windbg -k net:port=50005,key=3u8smyv477z20.2owh9gl90gbxx.3sfsihzgq7di4.nh8ugnmzb4l7 Then restart this VM by running shutdown -r -t 0 from this command prompt.Use CTRL+C para copiar a saída fornecida pelo Windbg para o buffer de comando. Isso evita a tentativa de anotar o valor de chave longa que é retornado.
Reative o BitLocker e a Inicialização Segura quando terminar de definir as configurações do depurador.
Como uma VM com suporte de sessão aprimorado pode atingir o tempo limite quando deixada em um ponto de interrupção, desabilite o suporte à sessão avançada usando o menu suspenso Exibir na VM.
A VM será reiniciada depois que o depurador for carregado e executado. Esse processo é descrito em seguida.
Como iniciar uma sessão de depuração
Para se conectar ao computador de destino, use CTRL+V para colar na janela de comando principal do sistema operacional a cadeia de caracteres Windbg que foi retornada pela kdnet que você copiou anteriormente.
C:\Debuggers\windbg -k net:port=<YourDebugPort>,key=<YourKey>
Ao tentar estabelecer uma conexão de depuração de rede pela primeira vez, você pode ser solicitado a permitir que o aplicativo de depuração (WinDbg ou KD) acesse por meio do firewall. Você deve responder ao prompt marcando as caixas para todos os três tipos de rede: domínio, privado e público.
Reiniciando o computador de destino
Depois que o depurador estiver conectado, reinicie o computador de destino. Para forçar a VM a reiniciar completamente, use esse comando no prompt de comando de um administrador.
shutdown -r -t 0
Quando a máquina virtual de destino for reiniciada, o depurador no sistema operacional host deverá se conectar.
Depois de se conectar à VM, pressione break no depurador para iniciar a depuração.
Para dar suporte à conexão de depuração, um Adaptador de Rede de Depuração do Kernel é adicionado e visível nas propriedades de rede depois que a VM é reinicializada.
Solução de problemas de depuração de rede de máquina virtual KDNET
Se o depurador não se conectar, use o comando ping da VM de destino para verificar a conectividade.
C:\>Ping <HostComputerIPAddress>
Algo não funcionou bem e não sei o que...
- Verifique se você deixou o WinDbg passar pelo firewall.
- Confirme se você está usando uma chave exclusiva que foi gerada por BCDEdit ou kdnet.
Minhas VMs não têm conectividade de rede
- Abra o Gerenciador de Comutador Virtual no Gerenciador do Hyper-V, selecione o Comutador Virtual existente e altere a NIC de rede externa para o Adaptador de Rede de Depuração do Kernel da Microsoft selecionando-o na caixa suspensa e selecionando OK na caixa de diálogo Gerenciador de Comutador Virtual. Depois de atualizar a NIC do Comutador Virtual, certifique-se de desligar e reiniciar suas VMs.
Sequência para adicionar a função Hyper-V a um computador Windows
Se o computador de destino for um host de máquina virtual, você poderá configurar a depuração de rede e ainda ter acesso à rede para as máquinas virtuais.
Suponha que você queira configurar a depuração de rede na seguinte situação.
- O computador de destino tem uma única placa de interface de rede.
- Você pretende instalar a função Hyper-V no computador de destino.
- Você pretende criar uma ou mais máquinas virtuais no computador de destino.
A melhor abordagem é configurar a depuração de rede no computador de destino antes de instalar a função Hyper-V. Em seguida, as máquinas virtuais terão acesso à rede.
Se você decidir configurar a depuração de rede depois que a função Hyper-V tiver sido instalada no computador de destino, você deverá alterar as configurações de rede para suas máquinas virtuais para fazer a ponte entre elas no Adaptador de Depuração de Rede do Microsoft Kernel. Caso contrário, as máquinas virtuais não terão acesso à rede.