Partilhar via


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

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

WinDbg Menu

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

Linha de comandos

Pode-se iniciar uma sessão de depuração no modo kernel numa janela do Prompt de Comando ao iniciar o WinDbg. Digite 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 porta serial (COM), pode-se usar variáveis de ambiente para definir as configurações de ligaçã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 Kernel-Mode variáveis de ambiente.

Parâmetros

SymbolPath
Uma lista de diretórios onde os arquivos de símbolos 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 utilizar na 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 da máquina de destino.

Quando o endereço IP target= é especificado, isso faz com que o depurador inicie uma conexão com a máquina de destino especificada, 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 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 longe 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 na máquina 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 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 de destino é especificado.

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

TargetMachineName
O nome da máquina do PC 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 PC 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 do modo kernel USB 3.0 xHCI-DBC (KDUSB).

ComPort
O nome da porta COM. Pode ser 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. 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 sendo executada no mesmo computador que o próprio depurador do kernel, use um único ponto (.) 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.

redefinições=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 certos 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 um pipe nomeado não for encontrado quando o depurador for iniciado, o parâmetro reconnect fará com que o sistema aguarde até que um pipe com esse nome apareça. Esse parâmetro só é necessário ao depurar certos 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 local de Kernel-Mode.

Parâmetros da versão anterior

Importante

O transporte 1394 está disponível para uso no Windows 10, versão 1607 e anteriores. Não está disponível em versões posteriores do Windows. Você deve fazer a transição dos seus projetos para outros transportes, como o KDNET utilizando Ethernet. Para obter mais informações sobre esse transporte, consulte Configurando a depuração automática do kernel da 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. 1394Channel 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, porque o depurador escolherá automaticamente o protocolo correto. Se você deseja definir isso manualmente, e o computador de destino está executando o Windows XP, 1394Protocol deve ser definido igual a "canal". Se o computador de destino estiver executando o Windows Server 2003 ou posterior, 1394Protocol deve ser definido como igual a "instância". Se for omitido, o depurador assumirá como padrão o protocolo apropriado para o computador de destino atual. Isso só pode ser especificado através da linha de comando ou das variáveis de ambiente, não através da interface gráfica do WinDbg.

Exemplos

O seguinte ficheiro em lote pode ser usado para configurar e iniciar uma sessão de depuração numa ligaçã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 seguintes linhas de comando podem ser usadas para iniciar o WinDbg sem quaisquer variáveis 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

Ver também

Opções de Command-Line do WinDbg

Kernel-Mode Variáveis de ambiente