Depuração do modo kernel ao vivo usando WinDbg (clássico)

Há duas maneiras de usar o WinDbg para iniciar uma sessão de depuração no modo kernel ao vivo.

WinDbg Menu

Quando o WinDbg está no modo inativo, você pode iniciar uma sessão de depuração de kernel escolhendo Depuração de Kernel no menu Arquivo ou pressionando CTRL+K. Quando a caixa de diálogo Depuração do Kernel for exibida, clique na guia apropriada: NET, COM, USB ou Local. Cada guia especifica um método de conexão diferente.

Prompt de comando

Em uma janela do Prompt de Comando, você pode iniciar uma sessão de depuração no modo kernel ao iniciar o WinDbg. Insira um dos seguintes 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 Caminho do Símbolo] -kl

windbg [-y SymbolPath] -k

Para obter mais informações, consulte Opções de linha de comando do WinDbg.

Variáveis de ambiente

Para depuração em um serial (porta COM), você pode usar variáveis de ambiente para especificar as configurações de conexão.

Use as variáveis a seguir para especificar uma conexão serial.

definir _NT_DEBUG_PORT = ComPort

definir _NT_DEBUG_BAUD_RATE = BaudRate

Para obter mais informações, consulte Variáveis de ambiente do modo kernel.

Parâmetros

Caminho do símbolo
Uma lista de diretórios onde os arquivos de símbolo estão localizados. Os diretórios na lista são separados por ponto-e-vírgula. Para obter mais informações, consulte Caminho do símbolo.

PortNumber
Um número de porta a ser usado para depuração de rede. Você pode escolher qualquer número entre 49152 e 65535. Para obter mais informações, consulte Configurando uma conexão de rede manualmente.

Chave
A chave de criptografia a ser usada para depuração de rede. Recomendamos que você use uma chave gerada automaticamente, que é fornecida pelo bcdedit ao configurar o computador de destino. Para obter mais informações, consulte Configurando uma conexão de rede manualmente.

TargetIPAddress
O endereço IPv4 da máquina de destino.

Quando o endereço IP target= é especificado, isso faz com que o depurador inicie uma conexão com o computador de destino especificado, enviando um pacote especial para o destino, que fará com que ele tente se conectar a esse depurador. O depurador enviará pacotes para o destino repetidamente aproximadamente a cada meio segundo, tentando se conectar. Se a conexão for bem-sucedida, o destino descartará qualquer conexão existente e se comunicará somente com essa instância do depurador. Isso permite que você assuma o controle da sessão de depuração de uma conexão de depuração existente.

Quando o destino é configurado com um endereço IP do host e o depurador está sendo executado no computador com o endereço IP do host configurado, não há necessidade de especificar o parâmetro target= IP address. Quando o destino é configurado com um endereço IP do host, ele envia pacotes OFFER para o host a cada três segundos. Os pacotes OFFER permitem que o depurador se conecte ao host quando nenhum endereço IP target= for especificado.

Para obter mais informações sobre como configurar o endereço IP do host no destino, consulte Configurando a depuração do kernel de rede KDNET automaticamente e Configurando a depuração do kernel de rede KDNET manualmente.

TargetMachineName
O nome da máquina do computador de destino. Para usar o nome da máquina, o sistema DNS na rede deve ter o nome da máquina associado ao endereço IP do computador de destino.

USBString
Uma cadeia de conexão USB. Isso deve corresponder à cadeia de caracteres especificada com a opção de inicialização /targetname. Para obter mais informações, consulte Configurando a depuração de modo kernel xHCI-DBC (KDUSB) USB 3.0.

Transporte
O nome da porta COM. Isso pode estar no formato "com2" ou no formato "\\.\com2", mas não deve ser simplesmente um número. Para obter mais informações, consulte Configurando uma conexão serial manualmente.

Taxa de Baud
A taxa de transmissão. Pode ser 9600, 19200, 38400, 57600 ou 115200.

SerialTcpIpPort
A porta TCP IP de destino da porta COM serial emulada.

SerialIPAddress
O endereço IP TCP de destino da porta COM serial emulada.

VMHost
Ao depurar uma máquina virtual, o VMHost especifica o nome do computador físico no qual a máquina virtual está sendo executada. Se a máquina virtual estiver em execução no mesmo computador que o próprio depurador de kernel, use um único ponto (.) para VMHost. Para obter mais informações, consulte Configurando uma conexão com uma máquina virtual.

Nome do Tubo
O nome do pipe criado pela máquina virtual para a conexão de depuração.

redefinições=0
Especifica que um número ilimitado de pacotes de redefinição pode ser enviado ao destino quando o host e o destino estão sincronizando. Esse parâmetro só é necessário ao depurar determinados tipos de máquinas virtuais.

Reconectar
Faz com que o depurador desconecte e reconecte automaticamente o pipe se ocorrer uma falha de leitura/gravação. Além disso, se o pipe nomeado não for encontrado quando o depurador for iniciado, o parâmetro reconnect fará com que ele aguarde a exibição de um pipe com esse nome. Esse parâmetro só é necessário ao depurar determinados tipos de máquinas virtuais.

-Kl
Faz com que o depurador execute a depuração no modo kernel local. Para obter mais informações, consulte Depuração no modo kernel local.

Parâmetros da versão anterior

Importante

O transporte 1394 está disponível para uso no Windows 10, versão 1607 e anterior. Ele não está disponível em versões posteriores do Windows. Você deve fazer a transição de seus projetos para outros transportes, como KDNET usando Ethernet. Para obter mais informações sobre esse transporte, consulte Configurando a depuração automática do kernel de rede KDNET.

1394Canal
O número do canal 1394. Os números de canal válidos são qualquer número inteiro entre 0 e 62, inclusive. 1394O canal deve corresponder ao número usado pelo computador de destino, mas não depende da porta física 1394 escolhida no adaptador.

1394Protocolo
O protocolo de conexão a ser usado para a conexão do kernel 1394. Isso quase sempre pode ser omitido, pois o depurador escolherá automaticamente o protocolo correto. Se você deseja definir isso manualmente e o computador de destino está executando o Windows XP, o 1394Protocol deve ser definido como "canal". Se o computador de destino estiver executando o Windows Server 2003 ou posterior, o 1394Protocol deverá ser definido como "instância". Se for omitido, o depurador usará como padrão o protocolo apropriado para o computador de destino atual. Isso só pode ser especificado por meio da linha de comando ou das variáveis de ambiente, não por meio da interface gráfica do WinDbg.

Exemplos

O arquivo em lotes a seguir pode ser usado para configurar e iniciar uma sessão de depuração em uma conexão de porta 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

As linhas de comando a seguir podem ser usadas para iniciar o WinDbg sem nenhuma variável de ambiente.

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

Confira também

Opções de linha de comando do WinDbg

Variáveis de ambiente do modo kernel