Compartir a través de


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

Herramientas de depuración para Windows admiten 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 kdnet.exe.

El equipo que ejecuta el depurador se denomina equipo host y el equipo que se depura 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. Compruebe que los equipos de destino y host estén conectados a un concentrador o conmutador de red mediante un cable de red adecuado.

  2. En el sistema operativo del equipo host, abra una ventana del 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>
...

Como alternativa, use Configuración, Red e Internet, Ethernet para recopilar información de direcciones IPv4.

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

Configurar el host y los equipos de destino

Use la utilidad kdnet.exe para configurar automáticamente los valores 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, consulte Herramientas de depuración para Windows.

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

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

    En estas direcciones 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 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 USB 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 deba 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 finalicen las pruebas y administre adecuadamente el equipo de prueba cuando las características de seguridad estén deshabilitadas.

  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 indique que el adaptador de red del destino es compatible, 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/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 .txt del bloc de notas.

Conectar 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 Red. Pegue el número de puerto y la clave que ha guardado antes en el archivo .txt del Bloc de notas. Seleccione Aceptar.

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

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 más información, vea Opciones de la 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 una Alerta de seguridad de Windows 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. El texto tendrá un aspecto 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 del equipo de destino

Una vez que el depurador se encuentre en la fase "Esperando para volver a conectarse...", 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 estar permitidas a través de un firewall

En el lado del host, donde se ejecuta el depurador, se deben habilitar todos los tipos de red 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 de selección 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 configuración del firewall del Panel de control que muestra las aplicaciones el Depurador simbólico de GUI de Windows el Depurador de kernel de Windows con los tres tipos de red habilitados.

Use 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 50000 predeterminado ya está en uso o está bloqueado.

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

El intervalo de números de puerto que se pueden usar para la depuración de red podría estar limitado por la directiva de red de su empresa. Para determinar si la directiva de su 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 al ejecutar kdnet.exe aparece el mensaje "La depuración de red no es compatible con ninguno de los NIC de este equipo", significa que el adaptador de red no es compatible.

El equipo host puede usar cualquier adaptador de red, pero el equipo de destino debe usar un adaptador de red compatible con las 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 kernel de red en Windows 10 y NIC Ethernet compatibles para la depuración de kernel de red en Windows 8.1.

Habilitar otros tipos de depuración

A partir de la actualización de octubre de 2020 de Windows 10 (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 se habilitan tanto el hipervisor como la depuración del kernel, el puerto del hipervisor se establece en <YourDebugPort> + 1.

Ejemplo de uso

Use la opción - bkw para habilitar la depuración bootmgr, kernel y 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 de hipervisor bcdedit /set hypervisordebug on
k habilita la depuración del kernel bcdedit /debug on
t habilita la depuración de winload bcdedit /bootdebug on

Especificar parámetros de bus

Si kdnet no puede determinar automáticamente los parámetros de bus del transporte, especifíquelos en la línea de comandos con la opción /busparams mediante 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 va a configurar.

Use el 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 Location en la pestaña General.

Por ejemplo:

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

Consulte también