Dois firewalls
Neste cenário, é necessário executar a depuração do kernel num computador no Edifício A. O seu técnico está localizado no Edifício C e tem acesso aos símbolos ali. No entanto, ambos os edifícios têm firewalls que não permitirão conexões de entrada.
Você precisa configurar um repetidor em um local neutro -- digamos, Edifício B. Em seguida, você pode conectar A para fora a B e conectar C para fora a B.
Haverá quatro computadores envolvidos neste cenário:
O computador de destino, localizado no Edifício A.
O computador host local, localizado no Edifício A. Este computador executará um servidor de conexão KD. Ele será conectado ao computador de destino por um cabo de depuração ou cabo 1394, e se conectará para fora ao repetidor. Deixe o endereço IP deste computador ser 127.0.10.10.
O computador no Edifício B. Isso executará o repetidor. Deixe seu endereço IP ser 127.0.20.20.
O computador no Edifício C onde o técnico está localizado. Este computador executará o WinDbg como um cliente inteligente. Deixe seu endereço IP ser 127.0.30.30.
Primeiro, verifique se o computador de destino está configurado para depuração e está ligado ao computador host local. Neste exemplo, um cabo 1394 é usado.
Em segundo lugar, inicie o repetidor proxy em 127.0.20.20:
dbengprx -p -s tcp:port=9001 -c tcp:port=9000,clicon=127.0.10.10
Em terceiro lugar, inicie o servidor de conexão KD em 127.0.10.10 no Edifício A da seguinte maneira:
kdsrv -t tcp:port=9000,clicon=127.0.20.20,password=Password
Finalmente, inicie o cliente inteligente em 127.0.30.30 no Edifício C. (Isso pode realmente ser feito antes ou depois de iniciar o servidor no Edifício A.)
windbg -k kdsrv:server=@{tcp:server=127.0.20.20,port=9001,password=Password},trans=@{1394:channel=9} -y SymbolPath
Five-Computer Cenário
Este cenário pode tornar-se ainda mais complicado se supor que os símbolos estão num computador no Edifício C, mas o técnico está num computador diferente.
Suponha que 127.0.30.30 tenha os símbolos, como antes, e que seu nome local seja \\BOXC
. O cliente inteligente pode ser iniciado com o mesmo comando acima, mas com um parâmetro adicional -server. Como ninguém usará esta máquina, levará menos tempo de processamento se você usar KD em vez de WinDbg:
kd -server npipe:pipe=randomname -k kdsrv:server=@{tcp:server=127.0.20.20,port=9001,password=Password},trans=@{1394:channel=9} -y SymbolPath
Em seguida, o técnico, em outro lugar do prédio, pode iniciar um cliente de depuração da seguinte maneira:
windbg -remote npipe:server=\\BOXC,pipe=randomname
Observe que a senha deve ser fornecida pelo primeiro dispositivo não repetidor na cadeia (o cliente inteligente em \\BOXC
), não pelo depurador final na cadeia.
Importante
Existem considerações de segurança importantes ao usar a depuração remota. Para obter mais informações, incluindo informações sobre como habilitar o modo seguro, consulte Segurança durante a depuração remota e Considerações de segurança para ferramentas de depuração do Windows.