Alternando modelos

Ao controlar a depuração do modo de usuário do depurador de kernel, você encontra quatro modos diferentes e pode alternar entre eles de várias maneiras.

Nota Ao descrever esse cenário, o aplicativo de destino refere-se ao aplicativo de modo de usuário que está sendo depurado, o computador de destino refere-se ao computador que contém o aplicativo de destino e o processo CDB ou NTSD, e o computador host refere-se ao computador que contém o depurador de kernel.

Os quatro modos a seguir serão encontrados:

Depuração do modo de usuário
O computador de destino e o aplicativo de destino estão congelados. O prompt de depuração do modo de usuário aparece na janela Comando do Depurador do depurador de kernel. No WinDbg, o prompt no painel inferior da janela WinDbg exibe Entrada>. Você pode inserir comandos neste prompt, como se eles fossem inseridos durante a depuração do modo de usuário, para analisar o estado do aplicativo de destino ou fazer com que ele seja executado ou percorra sua execução. Arquivos de símbolo, DLLs de extensão e outros arquivos que o depurador acessa serão esses arquivos no computador de destino, não no computador host.

Execução de aplicativo de destino
O computador de destino está em execução, o aplicativo de destino está em execução e o depurador está aguardando. Esse modo é o mesmo que permitir que o destino seja executado na depuração comum.

Modo de suspensão
O computador de destino está em execução, mas o aplicativo de destino está congelado e ambos os depuradores estão congelados. Esse modo será útil se você precisar fazer algo no computador de destino, mas não quiser alterar o estado da sessão de depuração.

Depuração do modo kernel
O computador de destino e o aplicativo de destino estão congelados. O kd> do prompt de depuração do modo kernel aparece na janela Comando do Depurador do depurador de kernel. Esse modo é o estado típico de depuração do modo kernel.

A sessão começa no modo de depuração no modo de usuário. As seguintes ações e eventos fazem com que o modo seja alterado:

  • Para alternar da depuração do modo de usuário para a execução do aplicativo de destino, use o comando g (Go) no Input> prompt.

  • Para alternar temporariamente da depuração do modo de usuário para a execução do aplicativo de destino e, em seguida, retornar à depuração do modo de usuário, use uma etapa, rastreamento ou outro comando de execução temporária. Para obter uma lista desses comandos, consulte Controlando o destino.

  • Para alternar da depuração do modo de usuário para o modo de suspensão, use o comando .sleep (Pausar Depurador). Esse comando é cronometrado. Quando o tempo expirar, o sistema retornará à depuração do modo de usuário.

  • Para alternar da depuração do modo de usuário para a depuração do modo kernel, use o comando .breakin (Break to the Kernel Debugger). Observe que .breakin pode falhar com um erro de acesso negado se o processo de chamada não tiver direitos de administrador. Nesse caso, alterne para KD emitindo um comando .sleep curto e pressionando CTRL+C.

  • Você pode alternar da execução do aplicativo de destino para a depuração no modo de usuário somente em determinados ambientes. Se o computador de destino estiver executando o Microsoft Windows XP ou uma versão posterior do sistema operacional Windows, você poderá usar o comando !bpid extension. Se você estiver usando CDB (não NTSD), poderá ativar a janela cdb no computador de destino e pressionar CTRL+C.

  • Se o aplicativo de destino atingir um ponto de interrupção, encontrar uma exceção, encontrar algum outro evento controlado ou terminar, o sistema mudará da execução do aplicativo de destino para a depuração do modo de usuário. Você deve planejar esses eventos com antecedência, especialmente quando estiver usando o NTSD. Para obter mais informações sobre esses eventos, consulte Usando pontos de interrupção e Controlando exceções e eventos.

  • Para alternar da execução do aplicativo de destino para a depuração no modo kernel, pressione CTRL+C na janela KD, pressione CTRL+BREAK ou clique em Interromper no menu Depurar na janela WinDbg ou pressione SYSRQ ou ALT+SYSRQ no teclado do computador de destino. (Se o depurador de kernel for KD e se você pressionar CTRL+C ao mesmo tempo em que o depurador de kernel estiver se comunicando com o depurador no modo de usuário, o depurador de modo de usuário poderá capturar você pressionando CTRL+C.)

  • Se o depurador encontrar um erro de kernel ou se você usar a ferramenta Breakin.exe, o sistema mudará da execução do aplicativo de destino para a depuração do modo kernel.

  • Para alternar do modo de suspensão para a depuração do modo de usuário, aguarde a expiração do tempo de suspensão, inicie um novo processo cdb no computador de destino usando a opção de linha de comando -wake ou use o comando .wake (Wake Debugger) em uma cópia diferente de CDB ou NTSD no computador de destino.

  • Para sair da depuração do modo kernel, use o comando g (Go) no kd> prompt. Esse comando retorna à depuração do modo de usuário ou à execução do aplicativo de destino (qualquer um dos dois foi o estado usado mais recentemente).