Partilhar via


Ativar um servidor de depuração

Há duas maneiras de ativar o servidor de depuração. Ele pode ser ativado quando o depurador é iniciado usando a opção de linha de comando -server em uma janela elevada do Prompt de Comando (Executar como Administrador). Ele também pode ser ativado depois que o depurador está em execução. Inicie o depurador com privilégios elevados (Executar como Administrador) e insira o comando .server.

Observação Você pode ativar um servidor de depuração sem ter privilégios elevados, e os clientes de depuração poderão se conectar ao servidor. No entanto, os clientes não poderão descobrir um servidor de depuração, a menos que ele tenha sido ativado com privilégios elevados. Para obter informações sobre como descobrir servidores de depuração, confira Procurar servidores de depuração.

Os depuradores têm suporte para vários protocolos de transporte: pipe nomeado (NPIPE), TCP, porta COM, pipe seguro (SPIPE) e SSL.

A sintaxe geral para ativar um servidor de depuração depende do protocolo usado.

Debugger -server npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] [-noio] [Options]

Debugger -server tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable] [-noio] [Options]

Debugger -server tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6] [-noio] [Options]

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

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

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

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

Outro método de ativar um servidor de depuração é usar o comando .server (Criar Servidor de Depuração) depois que o depurador já foi iniciado.

.server npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] 

.server tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable] 

.server tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6] 

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

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

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

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

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

Depurador
Pode ser KD, CDB, NTSD ou WinDbg.

tubo= Nome do Tubo
Quando o protocolo NPIPE ou SPIPE é usado, o PipeName é uma cadeia de caracteres que servirá como o nome do pipe. Cada nome de pipe deve identificar um servidor de depuração exclusivo. Se tentar reutilizar um nome de pipe, você receberá uma mensagem de erro. O PipeName não deve conter espaços ou aspas. PipeName pode incluir um código de formato de estilo printf, como %x ou %d. O depurador substituirá isso pelo ID do processo do depurador. Um segundo código será substituído pelo ID do thread do depurador.

Observação Talvez você precise habilitar o compartilhamento de arquivos e impressoras no computador que está executando o servidor de depuração. 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
Quando o protocolo TCP ou SSL é usado, Socket é o número da porta do soquete.

É possível também especificar um intervalo de portas separadas por dois pontos. O depurador verificará cada porta nesse intervalo para ver se está livre. Se ele encontrar uma porta livre e não ocorrer nenhum erro, o servidor de depuração será criado. O cliente de depuração terá que especificar a porta em si que está sendo usada para se conectar ao servidor. Para determinar a porta real, use qualquer um dos métodos descritos em Procurando servidores de depuração; quando esse servidor de depuração for exibido, a porta será seguida por dois números separados por dois pontos. O primeiro número será a porta real usada; a segunda pode ser ignorada. Por exemplo, se a porta foi especificada como port=51:60, e a porta 53 foi realmente usada, os resultados da pesquisa mostrarão "port=53:60". (Se você estiver usando o parâmetro clicon para estabelecer uma conexão reversa, o cliente de depuração poderá especificar um intervalo de portas dessa forma, enquanto o servidor deverá especificar a porta real usada.)

clicon= Cliente
Quando o protocolo TCP ou SSL é usado e o parâmetro clicon é especificado, uma conexão reversa será aberta. Isso quer dizer que o servidor de depuração tentará se conectar ao cliente de depuração, em vez de permitir que o cliente inicie o contato. Isso pode ser útil se você tiver um firewall que esteja impedindo conexão na direção usual. O Client especifica o nome de rede ou endereço IP do computador no qual o cliente de depuração existe ou será criado. As duas barras invertidas iniciais (\) são opcionais.

Como o servidor está procurando um cliente específico, você não poderá conectar vários clientes ao servidor se usar esse método. Se a conexão for recusada ou interrompida, você terá que reiniciar a conexão do servidor. Um servidor de conexão reversa não aparecerá quando outro depurador mostrar todos os servidores ativos.

Observação Quando clicon é usado, é melhor iniciar o cliente de depuração antes que o servidor de depuração seja criado, embora a ordem normal (servidor antes do cliente) também seja permitida.

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

baud= Taxa de baud
Quando o protocolo COM é usado, BaudRate especifica a taxa de transmissão em que a conexão será executada. Qualquer taxa de transmissão compatível com o hardware é permitida.

canal= COMChannel
Se o protocolo COM for usado, COMChannel especificará o canal COM a ser usado na comunicação com o cliente da depuração. Esse pode ser qualquer valor entre 0 e 254, inclusivo. Você pode usar uma única porta COM para várias conexões usando números de canal diferentes. (Isso é diferente do uso de portas COM para um cabo de depuração. Nessa situação, você não pode usar canais dentro de uma porta COM.)

proto= Protocolo
Se o protocolo SSL ou SPIPE for usado, Protocol especificará o protocolo Secure Channel (S-Channel). Pode ser qualquer cadeia de caracteres tls1, pct1, ssl2 ou ssl3.

Cert
Se o protocolo SSL ou SPIPE for usado, Cert especificará o certificado. Pode ser o nome do certificado ou a impressão digital do certificado (a cadeia de caracteres de dígitos hexadecimais fornecida pelo snapin do certificado). Se a sintaxe certuser=Cert for usada, o depurador buscará o certificado no repositório do sistema (o repositório padrão). Se a sintaxe machuser=Cert for usada, o depurador buscará o certificado no armazenamento da máquina. O certificado especificado deve dar suporte à autenticação do servidor.

escondido
Evita que o servidor apareça quando outro depurador mostra todos os servidores ativos.

senha= Senha
Exige que um cliente forneça a senha especificada para se conectar à sessão de depuração. A Senha pode ser qualquer cadeia alfanumérica com até doze caracteres.

Aviso O uso de uma senha com o protocolo TCP, NPIPE ou COM apenas oferece um pouco de proteção, porque a senha não é criptografada. Quando uma senha é usada com o protocolo SSL ou SPIPE, ela é criptografada. Se você deseja estabelecer uma sessão remota segura, deve usar o protocolo SSL ou SPIPE.

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.

-noio
Se o servidor de depuração for criado com a opção -noio, nenhuma entrada ou saída poderá ser feita por meio do próprio servidor. O depurador só aceitará entrada do cliente de depuração (mais qualquer comando inicial ou script de comando especificado pela opção de linha de comando -c). Toda a saída será direcionada para o cliente de depuração. A opção -noio só está disponível com KD, CDB e NTSD. Se NTSD for usado para o servidor, nenhuma janela de console será criada.

IcfHabilitar
Faz com que o depurador ative as conexões de porta necessárias para comunicação TCP ou pipe nomeado quando o Firewall de Conexão com a Internet estiver ativo. Por padrão, o Firewall de conexão com a Internet desabilita as portas usadas por esses protocolos. Quando IcfEnable é usado com conexão TCP, o depurador faz com que o Windows abra a porta especificada pelo parâmetro Socket. Quando IcfEnable é usado com conexão de pipe nomeado, o depurador faz com que o Windows abra as portas usadas para pipes nomeados (portas 139 e 445). O depurador não fecha essas portas após a conexão ser encerrada.

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.

Você pode usar o comando .server para iniciar vários servidores usando diferentes opções de protocolo. Isso permite que diferentes tipos de clientes de depuração ingressem na sessão.

Confira também

Controlar uma sessão de depuração remota

.endsrv (Encerrar Servidor de Depuração)