Eclipse Remote Debugging
Quando a situação exigir que uma rotina seja depurada em ambiente de produção, por exemplo, ou diretamente no ambiente onde o problema ocorre, nem sempre é possível dado o fato de não dispormos das ferramentas de desenvolvimento configuradas ou não termos acesso as mesmas fontes de informação.
Quando a situação exigir que uma rotina seja depurada em ambiente de produção, por exemplo, ou diretamente no ambiente onde o problema ocorre, nem sempre é possível dado o fato de não dispormos das ferramentas de desenvolvimento configuradas ou não termos acesso as mesmas fontes de informação.
Uma maneira de depurar o código remotamente é o debug remoto do Eclipse, onde basta ter acesso pela rede ao ambiente servidor com uma porta de comunicação disponível e o arquivo .java que corresponde ao .class existente no servidor.
Partindo do princípio que o projeto já esta configurado e a classe esta na mesma versão do código fonte, executaremos a classe no ambiente servidor com o comando abaixo.
java Sample –Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=2010 |
Quando executado este comando a rotina não será executada ela aguardará as instruções vindas da ferramenta de debug para continuar sua execução. O valor da propriedade address que no exemplo é 2010 corresponde a porta de comunicação que “ouvirá” a conexão feita pela ferramenta de remote debug do Eclipse.
Para inicializar a rotina no Eclipse, selecione o fonte da classe (neste exemplo a classe chama-se Sample), e utilize a opção do menu Run > Debug Configurations:
- Dê um duplo clique sobre a opção Remote Java Application para criar a configuração de debug customizada;
- Em seguida preencha as informações Host e Port com os dados do IP da máquina onde a rotina foi executada com o comando anterior e a porta que foi configurada na propriedade address, neste exemplo a porta configurada foi a de número 2010.
Se o acesso o host e a porta de comunicação configurada estiverem acessíveis, o debug iniciará na tela de seu Eclipse, lhe dando o total controle sobre a execução da rotina, que por sua vez estará sendo executada no ambiente remoto onde poderão ser visualizadas todas as mensagens de console ou logs.
Reforço essa parte:
ResponderExcluir"Partindo do princípio que o projeto já esta configurado e a classe esta na mesma versão do código fonte"
Se o código estiver com um espaço de diferente, o debug remoto não funciona.
Abraços.