Depuración en modo kernel en vivo mediante WinDbg (clásico)
Hay dos maneras de usar WinDbg para iniciar una sesión de depuración en modo kernel activa.
Menú WinDbg
Cuando WinDbg está en modo inactivo, puede iniciar una sesión de depuración de kernel seleccionando Depuración de kernel en el menú Archivo o presionando CTRL+K. Cuando aparezca el cuadro de diálogo Depuración de kernel, haga clic en la pestaña adecuada: NET, COM, USB o Local. Cada pestaña especifica un método de conexión diferente.
Símbolo del sistema
En una ventana del símbolo del sistema, puede iniciar una sesión de depuración en modo kernel al iniciar WinDbg. Introduce uno de los siguientes comandos:
windbg [-y SymbolPath] -k net:port=PortNumber,key=Key[,target=TargetIPAddress|TargetMachineName]
windbg [-y SymbolPath] -k usb:targetname=USBString
windbg [-y SymbolPath] -k com:port=ComPort,baud=BaudRate
windbg [-y SymbolPath] -k com:ipport=SerialTcpIpPort,port=SerialIPAddress
windbg [-y SymbolPath] -k com:pipe,port=\\VMHost\pipe\PipeName[,resets=0][,reconnect]
windbg [-y SymbolPath] -k com:modem
windbg [-y SymbolPath] -kl
windbg [-y SymbolPath] -k
Para obtener más información, consulte Opciones de línea de comandos de WinDbg.
Variables de entorno
Para depurar en serie (puerto COM), puede usar variables de entorno para especificar la configuración de conexión.
Use las siguientes variables para especificar una conexión serie.
set _NT_DEBUG_PORT = ComPort
set _NT_DEBUG_BAUD_RATE = BaudRate
Para obtener más información, consulte Variables de entorno en modo kernel.
Parámetros
SymbolPath
Lista de directorios donde se encuentran los archivos de símbolos. Los directorios de la lista están separados por punto y coma. Para obtener más información, vea Ruta de acceso de símbolos.
PortNumber
Número de puerto que se va a usar para la depuración de red. Puede elegir cualquier número entre 49152 y 65535. Para obtener más información, consulte Configurar una conexión de red manualmente.
Llave
Clave de cifrado que se va a usar para la depuración de red. Se recomienda usar una clave generada automáticamente, que se proporciona mediante bcdedit al configurar el equipo de destino. Para obtener más información, consulte Configurar una conexión de red manualmente.
TargetIPAddress
Dirección IPv4 de la máquina de destino.
Cuando se especifica la dirección IP target= , esto hace que el depurador inicie una conexión a la máquina de destino especificada, enviando un paquete especial al destino, lo que hará que intente conectarse con ese depurador. El depurador enviará paquetes al destino repetidamente cada medio segundo, intentando conectarse. Si la conexión se realiza correctamente, el destino quitará cualquier conexión existente y se comunicará solo con esta instancia del depurador. Esto le permite quitar el control de la sesión de depuración de una conexión de depuración existente.
Cuando el destino está configurado con una dirección IP de host y el depurador se ejecuta en la máquina con la dirección IP del host configurada, no es necesario especificar el parámetro target= IP address. Cuando el destino está configurado con una dirección IP de host, enviará paquetes OFFER al host cada tres segundos. Los paquetes OFFER permiten al depurador conectarse al host cuando no se especifica ninguna dirección IP target= .
Para obtener más información sobre cómo configurar la dirección IP del host en el destino, consulte Configuración de la depuración automática del kernel de red KDNET y Configuración manual de la depuración del kernel de red KDNET.
TargetMachineName
Nombre del equipo de destino. Para usar el nombre del equipo, el sistema DNS de la red debe tener el nombre del equipo asociado a la dirección IP del equipo de destino.
USBString
Un cadena de conexión USB. Debe coincidir con la cadena especificada con la opción de arranque /targetname. Para obtener más información, consulte Configuración de la depuración en modo kernel (KDUSB) de USB 3.0 xHCI-DBC.
Portarse
Nombre del puerto COM. Puede estar en el formato "com2" o en el formato "\\.\com2", pero no debe ser simplemente un número. Para obtener más información, consulte Configurar una conexión serie manualmente.
BaudRate
Velocidad en baudios. Puede ser 9600, 19200, 38400, 57600 o 115200.
SerialTcpIpPort
Puerto TCP IP de destino del puerto COM serie emulado.
SerialIPAddress
Dirección IP TCP de destino del puerto COM serie emulado.
VMHost
Al depurar una máquina virtual, VMHost especifica el nombre del equipo físico en el que se ejecuta la máquina virtual. Si la máquina virtual se ejecuta en el mismo equipo que el propio depurador de kernel, use un único punto (.) para VMHost. Para obtener más información, consulte Configuración de una conexión a una máquina virtual.
PipeName
Nombre de la canalización creada por la máquina virtual para la conexión de depuración.
resets=0
Especifica que se puede enviar un número ilimitado de paquetes de restablecimiento al destino cuando el host y el destino se sincronizan. Este parámetro solo es necesario al depurar determinados tipos de máquinas virtuales.
reconectar
Hace que el depurador desconecte y vuelva a conectar automáticamente la canalización si se produce un error de lectura y escritura. Además, si no se encuentra la canalización con nombre cuando se inicia el depurador, el parámetro de reconexión hará que espere a que aparezca una canalización de este nombre. Este parámetro solo es necesario al depurar determinados tipos de máquinas virtuales.
-Kl
Hace que el depurador realice la depuración en modo kernel local. Para obtener más información, consulte Depuración en modo kernel local.
Parámetros de versión anteriores
Importante
El transporte 1394 está disponible para su uso en Windows 10, versión 1607 y versiones anteriores. No está disponible en versiones posteriores de Windows. Debe realizar la transición de los proyectos a otros transportes, como KDNET mediante Ethernet. Para obtener más información sobre ese transporte, vea Configurar la depuración automática del kernel de red KDNET.
1394Channel
Número de canal 1394. Los números de canal válidos son cualquier entero entre 0 y 62, ambos incluidos. 1394Channel debe coincidir con el número usado por el equipo de destino, pero no depende del puerto físico 1394 elegido en el adaptador.
1394Protocol
Protocolo de conexión que se va a usar para la conexión del kernel 1394. Esto casi siempre se puede omitir, ya que el depurador elegirá automáticamente el protocolo correcto. Si desea establecer esto manualmente y el equipo de destino ejecuta Windows XP, 1394Protocol debe establecerse igual a "canal". Si el equipo de destino ejecuta Windows Server 2003 o posterior, 1394Protocol debe establecerse igual a "instancia". Si se omite, el depurador tendrá como valor predeterminado el protocolo adecuado para el equipo de destino actual. Esto solo se puede especificar a través de la línea de comandos o las variables de entorno, no a través de la interfaz gráfica de WinDbg.
Ejemplos
El siguiente archivo por lotes podría usarse para configurar e iniciar una sesión de depuración a través de una conexión de puerto COM.
set _NT_SYMBOL_PATH=d:\mysymbols
set _NT_DEBUG_PORT=com1
set _NT_DEBUG_BAUD_RATE=115200
set _NT_DEBUG_LOG_FILE_OPEN=d:\debuggers\logfile1.log
windbg -k
Las siguientes líneas de comandos se pueden usar para iniciar WinDbg sin ninguna variable de entorno.
windbg -y d:\mysymbols -k com:port=com2,baud=57600
windbg -y d:\mysymbols -k com:port=\\.\com2,baud=115200
windbg -y d:\mysymbols -k net:port=50000,key=AutoGeneratedKey
windbg -y d:\mysymbols -k net:port=50000,key=AutoGeneratedKey,target=TargetIPAddress