Debug remoto
Autor: Rafael Stange | Publicado: 2013-03-13T17:17:00-03:00


&nbsp; &nbsp;Quem nunca passou por uma situação em que na sua máquina a rotina executa normalmente e na máquina do cliente da erro? E ai? O que fazer? Bem, temos diversas "táticas" para validar essa situação como por exemplo fazer logs dentro das rotinas, ShowMessage e por ai vai. Agora, algo incrivelmente prático e correto é o Debug Remoto, isso mesmo que vocês estão pensando, acessar remotamente a máquina do cliente e debugar o sistema que está rodando na máquina dele. Como isso é possível? O Delphi, que é uma mãe pra nós, nos permite fazer isso de forma elegante e muito profissional utilizando ferrametas que acompanham o pacote de instalação.

&nbsp; &nbsp;Primeiramente precisamos separar alguas DLLs que devem ficar na máquina remota em especial na pasta onde encontra-se o executável que será depurado remotamente. Essas DLLs podem ser encontradas na pasta Bin da instalação do Delphi normalmente em: C:\Program Files\Embarcadero\RAD Studio\7.0\bin. São os arquivos:



rmtdbg&lt;nnn&gt;.exe
bccide.dll
bordbk&lt;nnn&gt;.dll
bordbk&lt;nnn&gt;N.dll
comp32x.dll
dcc32&lt;nnn&gt;.dll - Win32
dcc64&lt;nnn&gt;.dll - Win64&nbsp;
dccosx&lt;nnn&gt;.dll - Mac OS X



&nbsp; &nbsp;&lt;nnn&gt; é o número da versão que vc está utilizando do Delphi. Para o RAD Studio XE3 por exemplo, o valor de nnn é 170.
Depois de adicionar na pasta os arquivos, precisamos registrar duas DLLs usando o regsvr32, bordbk&lt;nnn&gt;.dll e bordbk&lt;nnn&gt;n.dll.

&nbsp; &nbsp;Agora vamos preparar nosso projeto para ser debugado remotamente.
&nbsp; &nbsp;Acesse o menu Project --&gt; Options --&gt; Linking e altere a propriedade "Include remote debug symbols" para "True" conforme imagem.





&nbsp; &nbsp;No Delphi pressione Shift+F9 para dar Build na sua aplicação. Nesse instante será gerado um arquivo com a extensão .rsm com o mesmo nome do executável. Esse arquivo nos possibilitará realizar o debug remoto. Agora envie para a máquina remota mais esses arquivos: o executável do sistema e o arquivo .rsm gerado após o Build.

&nbsp; &nbsp;Na máquina remota, execute o arquivo rmtdbg&lt;nnn&gt;.exe. Será exibida uma tela do Prompt, deixe ela aberta.
Na sua máquina faça os seguintes passos:

1. Acesse o menu Run --&gt; Load Process.
2. Selecione a opção "Remote".
3. Em "Remote Path" informe o caminho físico do executável na máquina remota, o Full Path mesmo: C:\Sistema\Sistema.exe, por exemplo.
4. Em "Remote Host" informe o IP da máquina remota.
5. Clique em "Load".

&nbsp; &nbsp;Se tudo estiver configurado como informado nos passos acima a aplicação remota será executada e você poderá colocar seus Break Points a vontade no Delphi e verificar o que quiser e ainda com um plus: o ambiente testado é o ambiente real do cliente.

&nbsp; &nbsp;Outra forma para realizar o Debug Remoto é acessando o menu Run --&gt; Attach to Process, a diferença aqui é que você vai atachar um processo que já esteja executando na máquina remota. Para isso basta informar o IP da máquina remota, selecionar o processo e clicar em "Attach". O processo deve ocorrer da mesma forma porém nesse caso o aplicativo a ser Debugado já deve estar rodando.

Boa sorte na caça aos Bugs.