Partilhar via


Depuração de Kernel-Mode ao vivo usando WinDbg (clássico)

Há duas maneiras de usar o WinDbg para iniciar uma sessão de depuração do modo kernel dinâmico.

WinDbg Menu

Quando o WinDbg estiver inativo, você poderá iniciar uma sessão de depuração de kernel escolhendo Kernel Debug no menu Arquivo ou pressionando CTRL+K. Quando a caixa de diálogo Depuração do Kernel for exibida, clique na guia apropriada: NET, 1394, USB, COM 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 SymbolPath] -kl

windbg [-y SymbolPath] -k

Para obter mais informações, consulte Opções de Command-Line do WinDbg.

Variáveis de ambiente

Para depuração em uma conexão serial (porta COM) ou 1394, 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.

set _NT_DEBUG_PORT = ComPort

set _NT_DEBUG_BAUD_RATE = BaudRate

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

Parâmetros

Symbolpath
Uma lista de diretórios em que 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.

Número_da_porta
Um número de porta a ser usado para depuração de rede. Você pode escolher qualquer número de 49152 a 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 quando você configura o computador de destino. Para obter mais informações, consulte Configurando uma conexão de rede manualmente.

TargetIPAddress
O endereço IPv4 do computador 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, o que fará com que ele tente se conectar com 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 removerá qualquer conexão existente e se comunicará apenas 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 é necessário especificar o parâmetro de endereço IP target= . Quando o destino for configurado com um endereço IP do host, ele enviará 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 de kernel de rede KDNET automaticamente e Configurando a depuração manual do kernel de rede KDNET.

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

1394Canal
O número do canal 1394. Números de canal válidos são qualquer inteiro entre 0 e 62, inclusive. 1394Channel deve corresponder ao número usado pelo computador de destino, mas não depende da porta física 1394 escolhida no adaptador. Para obter mais informações, consulte Configurando uma conexão 1394 manualmente.

1394Protocol
O protocolo de conexão a ser usado para a conexão de kernel 1394. Isso quase sempre pode ser omitido, pois o depurador escolherá automaticamente o protocolo correto. Se você quiser definir isso manualmente e o computador de destino estiver executando o Windows XP, 1394Protocol deverá ser definido como "canal". Se o computador de destino estiver executando o Windows Server 2003 ou posterior, 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.

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 uma conexão USB 3.0 manualmente e Configurando uma conexão USB 2.0 manualmente.

ComPort
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.

Baudrate
A taxa de transmissão. Isso pode ser 9600, 19200, 38400, 57600 ou 115200.

SerialTcpIpPort
A porta IP TCP 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á em execução. Se a máquina virtual estiver em execução no mesmo computador que o próprio depurador de kernel, use um único período (.) para VMHost. Para obter mais informações, consulte Configurando uma conexão com uma máquina virtual.

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

resets=0
Especifica que um número ilimitado de pacotes de redefinição pode ser enviado para o 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 se 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 de reconexão fará com que ele aguarde a exibição de um pipe desse 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 local do modo kernel. Para obter mais informações, consulte Depuração de Kernel-Mode local.

Exemplos

O arquivo em lote 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 Command-Line do WinDbg

Variáveis de ambiente no modo kernel