Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A ferramenta KDbgCtrl (Kernel Debugging Control, kdbgctrl.exe) pode ser usada para controlar a conexão de depuração do kernel a partir do computador de destino.
Para usar essa ferramenta, o computador de destino deve estar executando o Windows Server 2003 ou uma versão posterior do Windows.
O KDbgCtrl pode controlar cinco configurações diferentes: Depuração Completa do Kernel, Depuração Automática do Kernel, Tratamento de Erros User-Mode, Bloqueio da Depuração do Kernel e o tamanho do buffer DbgPrint.
Para usar o KDbgCtrl, você já deve ter ativado a depuração do kernel nas configurações de inicialização do computador de destino antes da última inicialização. KDbgCtrl não pode ser usado para ativar a depuração do kernel se isso não foi feito. Consulte Parâmetros de inicialização para habilitar a depuração para obter detalhes sobre essas configurações de inicialização.
Depuração completa do kernel
Quando a Depuração Completa do Kernel está ativada, um depurador do kernel em execução no computador anfitrião pode interagir com o computador de destino. O computador de destino entrará no depurador do kernel se uma exceção de modo kernel for atingida. Mensagens do destino para o host, como a saída DbgPrint, mensagens de carregamento de símbolos e depuradores redirecionados em modo de utilizador, também são permitidas.
Se essa configuração estiver desativada, todos os sinais do computador host serão ignorados pelo destino.
A Depuração Completa do Kernel está ativada por padrão. Para verificar o valor da configuração atual, use kdbgctrl -c. Para desativar essa configuração, use kdbgctrl -d. Para habilitar essa configuração, use kdbgctrl -e.
Se desejar verificar a configuração atual e usá-la para controlar a execução em um arquivo em lotes, você pode usar o comando kdbgctrl -cx . Para obter detalhes sobre este comando, consulte KDbgCtrl Command-Line Options.
Depuração automática do kernel
Se a Depuração Completa do Kernel estiver ativada, a configuração atual para a Depuração Automática do Kernel será irrelevante -- toda a comunicação será permitida.
Quando a Depuração Completa do Kernel está desativada e a Depuração Automática do Kernel está ativada, apenas o computador de destino pode iniciar uma conexão de depuração.
Nesse caso, apenas uma exceção de modo kernel, ponto de interrupção ou outro evento de modo kernel fará com que uma conexão seja estabelecida. A conexão não será estabelecida para a saída de DbgPrint, mensagens de carregamento de símbolos, entrada e saída redirecionadas do depurador em modo de utilizador, ou outras mensagens semelhantes -- estas serão armazenadas no buffer do DbgPrint em vez de serem enviadas para o depurador do kernel.
Se uma exceção ou evento fizer com que o alvo entre no depurador do kernel, a Depuração Completa do Kernel será ativada automaticamente, como se você tivesse executado kdbgctrl -e.
A Depuração Automática do Kernel é desativada por padrão (embora isso seja irrelevante, a menos que a Depuração Completa do Kernel também esteja desativada). Para verificar o valor da configuração atual, use kdbgctrl -ca. Para desativar essa configuração, use kdbgctrl -da. Para habilitar essa configuração, use kdbgctrl -ea.
Tratamento de errosUser-Mode
Quando User-Mode Tratamento de Erros está habilitado, alguns eventos de modo de usuário farão com que o computador de destino invada o depurador do kernel.
Especificamente, todas as interrupções int 3 -- como pontos de interrupção inseridos no código por um depurador ou chamadas para DbgBreakPoint -- irão provocar uma interrupção no depurador do kernel. No entanto, exceções padrão - como violações de acesso e divisão por zero - geralmente não serão enviadas para o depurador do kernel.
Se um depurador de modo de usuário já estiver anexado ao processo, esse depurador capturará todos os erros de modo de usuário e o depurador do kernel não será alterado. Para obter a classificação de precedência dos vários manipuladores de erro de modo de usuário, consulte Ativando Postmortem Debugging.
Para que o tratamento de erros User-Mode funcione, a Depuração Completa do Kernel ou a Depuração Automática do Kernel também devem estar ativadas.
User-Mode Tratamento de Erros está habilitada por padrão. Para verificar o valor da configuração atual, use kdbgctrl -cu. Para desativar essa configuração, use kdbgctrl -du. Para habilitar essa configuração, use kdbgctrl -eu.
Bloqueando a depuração do kernel
Em alguns casos, você pode querer configurar o computador de destino para depuração do kernel, mas aguarde para habilitar a depuração do kernel até que o computador de destino seja iniciado. Você pode fazer isso bloqueando a depuração do kernel.
Importante
Antes de usar o BCDEdit para alterar as informações de inicialização, talvez seja necessário suspender temporariamente os recursos de segurança do Windows, como BitLocker e Inicialização Segura, no computador de teste. Reative esses recursos de segurança quando o teste estiver concluído e gerencie adequadamente o computador de teste, quando os recursos de segurança estiverem desativados.
Para bloquear a depuração do kernel, configure o computador de destino usando comandos semelhantes aos seguintes:
bcdedit /debug on
bcdedit /dbgsettings 1394 channel:32 /start DISABLE /noumex
Quando você reiniciar o computador de destino, ele estará preparado para a depuração do kernel, mas a depuração do kernel e a manipulação de erros User-Mode serão desabilitadas. Nesse ponto, um computador host não poderá se conectar ao computador de destino, verificações de bugs não serão detetadas pelo depurador do kernel e exceções no modo de usuário não causarão uma quebra no depurador do kernel.
Quando estiver pronto, você pode ativar a depuração do kernel (sem reiniciar o computador de destino) inserindo os seguintes comandos.
kdbgctrl -db
kdbgctrl -e
Mais tarde, você pode desativar a depuração do kernel inserindo os seguintes comandos.
kdbgctrl -d
kdbgctrl -eb
Você pode usar kdbgctrl -cb para verificar se a depuração do kernel está bloqueada.
O tamanho do buffer DbgPrint
O buffer DbgPrint armazena mensagens que o computador de destino enviou para o depurador do kernel.
Se a Depuração Completa do Kernel estiver ativada, essas mensagens aparecerão automaticamente no depurador do kernel. Mas se essa opção estiver desativada, essas mensagens serão armazenadas no buffer. Em um momento posterior, você pode habilitar a depuração do kernel, conectar-se a um depurador do kernel e usar a extensão !dbgprint para ver o conteúdo desse buffer. Para obter mais informações sobre esse buffer, consulte O buffer DbgPrint.
O tamanho padrão do buffer DbgPrint é 4 KB em uma compilação gratuita do Windows. Para determinar o tamanho atual do buffer, use kdbgctrl -cdb. Para alterar o tamanho do buffer, use kdbgctrl -sdbSize, onde Tamanho especifica o novo tamanho do buffer. Para obter detalhes de sintaxe, consulte KDbgCtrl Command-Line Opções.
exemplos
Para exibir todas as configurações atuais, use o seguinte comando:
kdbgctrl -c -ca -cu -cb -cdb
Para restaurar as configurações padrão, use o seguinte comando:
kdbgctrl -e -da -eu -db -sdb 0x1000
Para bloquear o computador host para que ele só seja contatado em exceções, use o seguinte comando:
kdbgctrl -d -ea -eu
Para desativar toda a depuração do kernel, use o seguinte comando:
kdbgctrl -d -da
Se você estiver desativando toda a depuração do kernel, você também pode querer aumentar o tamanho do buffer DbgPrint. Isso garante que todas as mensagens serão salvas caso você precise vê-las mais tarde. Se você tiver um megabyte de memória de sobra, você pode usar o seguinte comando:
kdbgctrl -sdb 0x100000