Exemplos de servidor de processo

Suponha que uma pessoa esteja executando um aplicativo em um computador chamado \\BOX17. Esse aplicativo tem problemas, mas o técnico de depuração está em um site diferente.

A primeira pessoa configura um servidor de processo usando DbgSrv em \\BOX17. O aplicativo de destino tem uma ID de processo de 122. O protocolo TCP é escolhido, com um número de porta de soquete de 1025. O servidor é iniciado com o seguinte comando:

E:\Debugging Tools for Windows> dbgsrv -t tcp:port=1025 

No outro computador, o técnico inicia o WinDbg como um cliente inteligente com este comando:

G:\Debugging Tools> windbg -premote tcp:server=BOX17,port=1025 -p 122 

Veja a seguir outro exemplo. Nesse caso, o protocolo NPIPE é escolhido e o CDB é usado em vez de WinDbg. O primeiro usuário escolhe um nome de pipe. Pode ser qualquer cadeia de caracteres alfanumérica – neste exemplo, "AnotherPipe". O primeiro usuário abre uma janela do Prompt de Comando com privilégios elevados (Executar como Administrador) e inicia um servidor de depuração inserindo este comando:

E:\Debugging Tools for Windows> dbgsrv -t npipe:pipe=AnotherPipe

O técnico está conectado ao computador cliente com uma conta que não tem acesso ao computador servidor. Mas o técnico sabe o nome de usuário e a senha de uma conta que tem acesso ao computador servidor. O nome de usuário dessa conta é Contoso. O técnico insere o seguinte comando:

net use \\BOX17\ipc$ /user:Contoso

Quando solicitado, o técnico insere a senha da conta da Contoso.

O técnico não tem certeza de qual nome foi usado para o pipe nomeado, portanto, eles consultam BOX17 para servidores de processo:

G:\Debugging Tools> cdb -QR \\BOX17
Servers on \\BOX17:
Debugger Server - npipe:Pipe=MainPipe
Remote Process Server - npipe:Pipe=AnotherPipe

Dois pipes são mostrados. No entanto, apenas um é um servidor de processo – o outro é um servidor de depuração e não estamos interessados nisso. Portanto, AnotherPipe deve ser o nome correto. O técnico insere o seguinte comando para iniciar o cliente inteligente:

G:\Debugging Tools> cdb -premote npipe:server=BOX17,pipe=AnotherPipe -v sol.exe

Para obter um exemplo mais complicado usando um servidor de processo, consulte Símbolos no meio.