Configuración automática de la depuración automática del kernel de red de KDNET

Herramientas de depuración para Windows, admite la depuración de kernel a través de una red. En este artículo se describe cómo configurar la depuración de red automáticamente mediante la herramienta de configuración dekdnet.exe .

El equipo que ejecuta el depurador se denomina equipo host y el equipo que se está depurando se denomina equipo de destino. El equipo host debe ejecutar Windows 7 o posterior y el equipo de destino debe ejecutar Windows 8 o posterior.

Determinación de la dirección IP del equipo host

  1. Confirme que los equipos de destino y host están conectados a un concentrador de red o a un conmutador mediante un cable de red adecuado.

  2. En el equipo host, abra un símbolo del sistema y escriba IPConfig para mostrar la configuración de IP.

  3. En la salida del comando, busque la dirección IPv4 del adaptador Ethernet.

...

Ethernet adapter Ethernet:
...

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

  1. Anote la dirección IPv4 del adaptador de red que va a usar para la depuración.

Configuración del host y los equipos de destino

Use la utilidad kdnet.exe para configurar automáticamente las opciones del depurador en el equipo de destino siguiendo estos pasos.

  1. Confirme que las herramientas de depuración de Windows están instaladas en el sistema host. Para obtener información sobre cómo descargar e instalar las herramientas del depurador, vea Herramientas de depuración para Windows.

  2. Busque los archivos kdnet.exe y VerifiedNICList.xml . De forma predeterminada, los archivos se encuentran en la siguiente ubicación:

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

    En estas instrucciones se supone que ambos equipos ejecutan una versión de 64 bits de Windows tanto en el destino como en el host. Si no es así, el mejor enfoque es ejecutar el mismo "bit" de herramientas en el host en el que se ejecuta el destino. Por ejemplo, si el destino ejecuta Windows de 32 bits, ejecute una versión de 32 del depurador en el host. Para obtener más información, consulte Elección de las herramientas de depuración de 32 o 64 bits.

  3. En el equipo host, copie los dos archivos en un recurso compartido de red o una unidad digital para que estén disponibles en el equipo de destino.

  4. En el equipo de destino, cree un directorio C:\KDNET y copie los archivos kdnet.exe y VerifiedNICList.xml en ese directorio.

    Importante

    Antes de usar kdnet.exe para cambiar la información de arranque, es posible que tenga que suspender temporalmente las características de seguridad de Windows, como BitLocker y arranque seguro en el equipo de prueba. Vuelva a habilitar estas características de seguridad cuando se completen las pruebas y administre correctamente el equipo de prueba cuando se deshabiliten las características de seguridad.

  5. En el equipo de destino, abra un símbolo del sistema como administrador. Escriba este comando para comprobar que el equipo de destino tiene un adaptador de red compatible:

    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. Cuando la salida de kdnet.exe indica que se admite el adaptador de red en el destino, puede continuar.

  7. Escriba el siguiente comando para establecer la dirección IP del sistema host y generar una clave de conexión única. Use la dirección IP o el nombre del sistema host. Elija una dirección de puerto única para cada par de destino o host con el que trabaje, dentro del 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 la clave devuelta en un archivo .txtdel Bloc de notas .

Conexión de WinDbg al destino para la depuración de kernel

En el equipo host, abra WinDbg. En el menú Archivo , seleccione Depuración de kernel. En el cuadro de diálogo Depuración de kernel, abra la pestaña Net . Pegue el número de puerto y la clave guardadas en el bloc de notas .txt archivo anteriormente. Seleccione Aceptar.

También puede iniciar una sesión de WinDbg abriendo un símbolo del sistema y escribiendo el siguiente comando. <YourPort> es el puerto que seleccionó anteriormente y <YourKey> es la clave devuelta por kdnet.exe anteriormente. Pegue la clave que guardó en el Bloc de notas .txt archivo anteriormente.

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

El parámetro opcional -d que se muestra en el ejemplo habilita la interrupción temprana. Para obtener más información, vea Opciones de línea de comandos de WinDbg.

Si se le pide que permita que WinDbg acceda al puerto a través del firewall, permita que WinDbg acceda al puerto para los tres tipos de red diferentes.

Captura de pantalla de Seguridad de Windows Alerta con selecciones para permitir el acceso a los tres tipos de red.

En este momento, el depurador espera a que el destino se vuelva a conectar. El texto se muestra en la ventana de comandos del depurador. Ese texto será similar al siguiente:

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 el equipo de destino

Una vez que el depurador está en "Esperando a volver a conectarse..." stage, reinicie el equipo de destino. Una manera de reiniciar el equipo es usar este comando desde el símbolo del sistema de un administrador.

shutdown -r -t 0 

Una vez reiniciado el equipo de destino, el depurador debe conectarse automáticamente.

Sugerencias de solución de problemas

Las aplicaciones de depuración deben permitirse a través de un firewall

En el lado host, donde se ejecuta el depurador, se deben habilitar todos los tipos de redes para permitir que el depurador se comunique con el destino a través del firewall.

Use el Panel de control para permitir el acceso a través del firewall.

  1. Abra Panel de control > Sistema y seguridad y seleccione Permitir una aplicación a través del Firewall de Windows.

    • (WinDbg) En la lista de aplicaciones, busque el proceso del motor de WinDbg (tcp) (todos).

    • (WinDbg (clásico)) En la lista de aplicaciones, busque Depurador simbólico de GUI de Windows y Depurador de kernel de Windows.

  2. Use las casillas para permitir esas dos aplicaciones a través de los tres tipos de red diferentes.

  3. Desplácese hacia abajo y seleccione Aceptar para guardar los cambios del firewall. Reinicie el depurador.

    Captura de pantalla de Panel de control configuración del firewall que muestra el depurador simbólico de GUI de Windows y las aplicaciones del depurador de kernel de Windows con los tres tipos de red habilitados.

Uso de ping para probar la conectividad

Si el depurador agota el tiempo de espera y no se conecta, use el comando ping en el equipo de destino para comprobar la conectividad.

   C:\>Ping <HostComputerIPAddress>

Elección de un puerto para la depuración de red

Si el depurador agota el tiempo de espera y no se conecta, puede deberse a que el número de puerto predeterminado de 50000 ya está en uso o está bloqueado.

Puede elegir cualquier número de puerto de 49152 a 65535. El intervalo recomendado está comprendido entre 50000 y 50039. El depurador que ejecuta en el equipo host abre el puerto que elija para el acceso exclusivo.

El intervalo de números de puerto que se pueden usar para la depuración de red puede estar limitado por la directiva de red de su empresa. Para determinar si la directiva de la empresa limita el intervalo de puertos que se pueden usar para la depuración de red, consulte con los administradores de red.

Adaptadores de red compatibles

Si no se admite la depuración de red en ninguna de las NIC de esta máquina" al ejecutar kdnet.exe, no se admite el adaptador de red.

El equipo host puede usar cualquier adaptador de red, pero el equipo de destino debe usar un adaptador de red compatible con herramientas de depuración para Windows. Para obtener una lista de los adaptadores de red compatibles, consulte NIC Ethernet compatibles para la depuración de kernels de red en Windows 10 y NIC Ethernet compatibles para la depuración de kernels de red en Windows 8.1.

Habilitación de otros tipos de depuración

A partir de Windows 10 actualización de octubre de 2020 (20H2), se admiten las siguientes opciones para habilitar cuatro tipos de depuración:

Se puede especificar cualquier combinación de tipos de depuración.

Si no se especifica ningún tipo de depuración, se habilita la depuración del kernel.

Si el hipervisor y la depuración del kernel están habilitados, el puerto del hipervisor se establece <YourDebugPort> en + 1.

Ejemplo de uso

Use la opción - bkw para habilitar el arranque, el kernel y la depuración winload.

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

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

Resumen de las opciones de tipo de depuración

Opción KNDET Descripción Comando set equivalente
b habilita la depuración de bootmgr bcdedit /bootdebug {bootmgr} on
h habilita la depuración del hipervisor bcdedit /set hipervisordebug en
k habilita la depuración del kernel bcdedit /debug en
w habilita la depuración winload bcdedit /bootdebug en

Especificación de parámetros de bus

Si kdnet no puede determinar automáticamente los parámetros de bus para el transporte, especifíquelos en la línea de comandos con la /busparams opción utilizando esta sintaxis.

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

b.d.f especifica los parámetros de bus del dispositivo que se van a configurar.

Use Administrador de dispositivos en el equipo de destino para determinar los números de bus, dispositivo y función PCI para el adaptador que desea usar para la depuración. En Parámetros de bus, escriba b. d. f donde b, d y f son el número de bus, el número de dispositivo y el número de función del adaptador. Estos valores se muestran en Administrador de dispositivos en Ubicación en la pestaña General.

Por ejemplo:

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

Consulte también