!bpid
A extensão !bpid solicita que um processo no computador de destino interrompa o depurador ou solicita a anexação de um depurador de modo de usuário a um processo no computador de destino.
!bpid [Options] PID
Parâmetros
Opção
Controla as atividades adicionais deste comando.
Os valores válidos de Option aparecem na tabela a seguir.
-a |
Anexa um novo depurador de modo de usuário ao processo especificado pelo PID. O depurador de modo de usuário é executado no computador de destino. |
-s |
Adiciona um ponto de interrupção que ocorre no processo WinLogon imediatamente antes da interrupção no processo de modo de usuário especificado pelo PID. Isso permite ao usuário verificar a solicitação antes de tentar a ação. |
-w |
Armazena a solicitação na memória do computador de destino. O sistema de destino pode repetir a solicitação, mas, em geral, isso não é necessário. |
PID
Especifica a ID do processo desejado no computador de destino. Se você estiver usando isso para controlar um depurador de modo de usuário no computador de destino, o PID deverá ser a ID do processo do aplicativo de destino, não do depurador de modo de usuário. (Como as IDs de processo costumam ser listadas no formato decimal, talvez seja necessário prefixá-las com 0n ou convertê-las em formato hexadecimal.)
DLL
Kdexts.dll
Esse comando de extensão é compatível com computadores de destino baseados em x86 e x64.
Comentários
Esse comando é especialmente útil ao redirecionar a entrada e a saída de um depurador de modo de usuário para o depurador do kernel. Isso leva o aplicativo de destino do modo de usuário a interromper o depurador de modo de usuário que, por sua vez, solicita a entrada do depurador do kernel. Consulte Controlar o depurador de modo de usuário do depurador de kernel para obter mais informações.
Se esse comando for usado em outra situação, o processo de modo de usuário chamará DbgBreakPoint. Isso costuma intervir diretamente no depurador do kernel.
A opção -s leva a uma interrupção no WinLogon antes da interrupção no processo especificado. Isso é útil quando você deseja executar ações de depuração no contexto de processo do WinLogon. O comando g (Ir) pode ser usado para passar para a segunda interrupção.
Note que pode haver falhas na execução dessa extensão:
Falta de recursos. A extensão !bpid injeta um thread no processo de destino; assim, o sistema deve ter recursos suficientes para criar um thread. Usar a opção -a exige ainda mais recursos do sistema porque !bpid -a deve executar uma instância completa de um depurador no computador de destino.
O bloqueio do carregador já foi feito. Ambos !bpid e !bpid -a exigem a execução de um thread no processo de destino para que ele interrompa o depurador. Se outro thread estiver contendo o bloqueio do carregador, o thread !bpid não poderá ser executado e talvez não ocorra uma interrupção no depurador. Assim, em caso de falha de !bpid quando houver memória de modo de usuário suficiente disponível para o processo de destino, será possível manter o bloqueio do carregador.
Falta de permissão. A operação da extensão !bpid exige permissão suficiente para o WinLogon criar um thread remoto e anexar um depurador a um processo específico.
Não há acesso a ntsd.exe. Se ntsd.exe não for encontrado em um caminho conhecido, !bpid falhará ao definir um PID adequado. Note que ntsd.exe não está incluído por padrão no Windows Vista.