Controlando uma sessão de depuração remota

Depois que a sessão remota for iniciada, os comandos poderão ser inseridos no servidor de depuração ou no cliente de depuração. Se houver vários clientes, qualquer um deles poderá inserir comandos. Depois que ENTER é pressionado, o comando é transmitido para o servidor de depuração e executado.

Sempre que um usuário insere um comando, todos os usuários verão o próprio comando e sua saída. Se esse comando tiver sido emitido de um cliente de depuração, todos os outros usuários verão uma identificação, antes do comando , do qual o usuário emitiu o comando. Os comandos emitidos do servidor de depuração não têm esse prefixo.

Depois que um comando é executado por um usuário, outros usuários conectados por meio de KD ou CDB não verão um novo prompt de comando. Por outro lado, os usuários do WinDbg verão o prompt no painel inferior da janela Comando do Depurador continuamente, mesmo quando o mecanismo de depurador estiver em execução. Nenhum deles deve ser uma causa de alarme; qualquer usuário pode inserir um comando a qualquer momento e o mecanismo executará esses comandos na ordem em que foi recebido.

As ações feitas por meio da interface WinDbg também serão executadas pelo servidor de depuração.

Comunicação entre usuários

Sempre que um novo cliente de depuração se conectar à sessão, todos os outros usuários verão uma mensagem informando que esse cliente se conectou. Nenhuma mensagem é exibida quando um cliente se desconecta.

O comando .clients (List Debugging Clients) listará todos os clientes atualmente conectados à sessão de depuração.

O comando .echo (Echo Comment) é útil para enviar mensagens de um usuário para outro.

WinDbg Workspaces

Quando o WinDbg está sendo usado como um cliente de depuração, seu workspace só salvará valores definidos por meio da interface gráfica. As alterações feitas por meio da janela Comando do Depurador não serão salvas. (Isso garante que somente as alterações feitas pelo cliente local serão refletidas, pois a janela Comando do Depurador aceitará a entrada de todos os clientes, bem como o servidor de depuração.)

Caminhos de arquivo

O caminho do símbolo, o caminho da imagem executável e o caminho da DLL de extensão são interpretados como caminhos de arquivo relativos à pasta de instalação Ferramentas de Depuração para Windows no servidor de depuração.

Quando o WinDbg é usado como um cliente de depuração, ele também tem seu próprio caminho de origem local . Todos os comandos relacionados à origem acessarão os arquivos de origem no computador local. Portanto, os caminhos adequados devem ser definidos em qualquer cliente ou servidor que use comandos de origem.

Esse sistema de vários caminhos permite que um cliente de depuração use comandos relacionados à origem sem realmente compartilhar os arquivos de origem com outros clientes ou com o servidor. Isso será útil se houver arquivos de origem privados ou confidenciais aos quais um dos usuários tem acesso.

Cancelando o servidor de depuração

O comando .endsrv (Servidor de Depuração Final) pode ser usado para encerrar um servidor de depuração. Se o depurador tiver estabelecido vários servidores de depuração, você poderá cancelar alguns deles enquanto deixa outros em execução.

O encerramento de um servidor impedirá que clientes futuros sejam anexados a ele. Ele não cortará nenhum cliente que esteja conectado no momento por meio do servidor.

Saindo do depurador e encerrando a sessão

Para sair de um cliente de depuração sem encerrar o servidor, você deve emitir um comando desse cliente específico. Se esse cliente for KD ou CDB, use a tecla CTRL+B para sair. Se você estiver usando um script para executar KD ou CDB, use .remote_exit (Sair cliente de depuração). Se esse cliente for WinDbg, escolha Sair no menu Arquivo para sair.

Para encerrar toda a sessão e sair do servidor de depuração, use o comando q (Quit). Esse comando pode ser inserido de qualquer servidor ou cliente e encerrará toda a sessão para todos os usuários.