Partilhar via


Ativando um Smart Client

Depois que o servidor de processo DbgSrv tiver sido ativado, você poderá criar um cliente inteligente em outro computador e iniciar uma sessão de depuração.

Há duas maneiras de iniciar um cliente inteligente: iniciando o CDB ou o WinDbg com a opção de linha de comando -premote ou usando a interface gráfica do WinDbg.

O protocolo do cliente inteligente deve corresponder ao protocolo do servidor de processo. A sintaxe geral para iniciar um cliente inteligente depende do protocolo usado. As seguintes opções estão disponíveis:

Debugger -premote npipe:server=Server,pipe=PipeName[,password=Password] [Options]

Debugger -premote tcp:server=Server,port=Socket[,password=Password][,ipversion=6] [Options]

Debugger -premote tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6] [Options]

Debugger -premote com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password] [Options]

Debugger -premote spipe:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,pipe=PipeName[,password=Password] [Options]

Debugger -premote ssl:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,port=Socket[,password=Password] [Options]

Debugger -premote ssl:proto=Protocol,{certuser=Cert|machuser=Cert},clicon=Server,port=Socket[,password=Password] [Options]

Para usar a interface gráfica para se conectar a um servidor de processo, o WinDbg deve estar no modo inativo – ele deve ter sido iniciado sem parâmetros de linha de comando ou deve ter encerrado a sessão de depuração anterior. Selecione o arquivo | Conecte-se ao comando de menu Stub remoto. Quando a caixa de diálogo Conectar ao Servidor de Stub Remoto for exibida, insira uma das seguintes cadeias de caracteres na caixa de texto Cadeia de conexão :

npipe:server=Server,pipe=PipeName[,password=Password] 

tcp:server=Server,port=Socket[,password=Password][,ipversion=6] 

tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6] 

com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password] 

spipe:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,pipe=PipeName[,password=Password] 

ssl:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,port=Socket[,password=Password] 

ssl:proto=Protocol,{certuser=Cert|machuser=Cert},clicon=Server,port=Socket[,password=Password] 

Como alternativa, você pode usar o botão Procurar para localizar servidores de processo ativos.

Os parâmetros nos comandos anteriores têm os seguintes valores possíveis:

Depurador
Isso pode ser CDB ou WinDbg.

Servidor
Este é o nome da rede ou endereço IP do computador no qual o servidor de processo foi criado. As duas barras invertidas iniciais (\) são opcionais na linha de comando, mas não são permitidas na caixa de diálogo WinDbg.

tubo= Nome do Tubo
Se o protocolo NPIPE ou SPIPE for usado, PipeName será o nome que foi dado ao pipe quando o servidor de processo foi criado.

Se você não estiver conectado ao computador cliente com uma conta que tenha acesso ao computador servidor, deverá fornecer um nome de usuário e uma senha. No computador cliente, em uma janela do Prompt de Comando, digite o comando a seguir.

net use \\Server\ipc$ /user:UserName

em que Servidor é o nome do computador servidor e UserName é o nome de uma conta que tem acesso ao computador servidor.

Quando solicitado, digite a senha para UserName.

Depois que esse comando for bem-sucedido, você poderá ativar um cliente inteligente usando a opção de linha de comando -premote ou usando a interface gráfica do WinDbg.

Observação Talvez seja necessário habilitar o compartilhamento de arquivos e impressoras no computador servidor. No Painel de Controle, navegue até Rede e Internet > Central de Rede e Compartilhamento> Configurações de compartilhamento avançadas. Selecione Ativar compartilhamento de arquivo e impressora.

porta= Soquete
Se o protocolo TCP ou SSL for usado, Socket será o mesmo número de porta de soquete que foi usado quando o servidor de processo foi criado.

clique
Especifica que o servidor de processo tentará se conectar ao cliente inteligente por meio de uma conexão reversa. O cliente deve usar clicon se e somente se o servidor estiver usando clicon. Na maioria dos casos, o cliente inteligente é iniciado antes do servidor de processo quando uma conexão reversa é usada.

porta = COMPort
Se o protocolo COM for usado, o COMPort especificará a porta COM a ser usada. O prefixo "COM" é opcional (por exemplo, "com2" e "2" são aceitáveis).

baud= Taxa de baud
Se o protocolo COM for usado, BaudRate deverá corresponder à taxa de transmissão escolhida quando o servidor de processo foi criado.

canal= COMChannel
Se o protocolo COM for usado, o COMChannel deverá corresponder ao número do canal escolhido quando o servidor de processo foi criado.

proto= Protocolo
Se o protocolo SSL ou SPIPE for usado, o protocolo deverá corresponder ao protocolo seguro usado quando o servidor de processo foi criado.

Cert
Se o protocolo SSL ou SPIPE for usado, você deverá usar o parâmetro certuser=Cert ou machuser=Cert idêntico que foi usado quando o servidor de processo foi criado.

senha= Senha
Se uma senha foi usada quando o servidor de processo foi criado, a senha deve ser fornecida para criar o cliente inteligente. Ele deve corresponder à senha original. As senhas diferenciam maiúsculas de minúsculas. Se a senha errada for fornecida, a mensagem de erro especificará "Erro 0x80004005".

ipversion=6
(Ferramentas de depuração para o Windows 6.6.07 e versões anteriores somente) Força o depurador a usar IP versão 6 em vez da versão 4 ao usar TCP para se conectar à Internet. No Windows Vista e versões superiores, o depurador tenta padronizar automaticamente o IP versão 6, tornando essa opção desnecessária.

Opções
Os parâmetros de linha de comando adicionais podem ser inseridos aqui. Confira Opções de linha de comando para obter uma lista completa. Se você estiver usando o CDB, isso deve especificar o processo que deseja depurar. Se você estiver usando o WinDbg, poderá especificar o processo na linha de comando ou por meio da interface gráfica.

Como o servidor de processo simplesmente atua como um gateway para o cliente inteligente, as opções adicionais serão as mesmas que você usaria se estivesse iniciando um depurador de modo de usuário no mesmo computador que o aplicativo de destino.

Se você estiver usando a opção -premote com .attach (Anexar ao Processo) ou .create (Criar Processo), os parâmetros serão os mesmos listados acima.

Solução de problemas

Se você vir esta mensagem: O cliente não está usando a mesma versão do protocolo de comunicação remota que o servidor, isso indica que a versão do DbgSrv à qual você está tentando se conectar está usando uma versão de protocolo diferente da versão do WinDbg.

É incomum que sejam feitas alterações de protocolo. Quando isso acontecer, verifique se você está usando as versões correspondentes da versão mais recente disponível do DbgSrv e WinDbg (Clássico) ou WinDbg. Para obter informações sobre como baixar a versão mais recente, consulte Ferramentas de depuração para Windows.