Comment débugger une application distante sous Eclipse

Publié le 3 Février 2010

Lorsqu'on travaille avec une application propriétaire ou une application qui n'a tout simplement pas de plug-in Eclipse, il est toujours intéressant de pouvoir débugger son code directement sous Eclipse.

Pour cela il faut utiliser le debuggage d'application distante d'Eclipse. La configuration de ce mode ce fait en 2 parties:
 - Configurer l'application distante en mode debug (avec la spécification du port grâce auquel on va pouvoir piloter le debuggage depuis Eclipse)
 - Configurer le mode debug d'Eclipse pour se connecter à l'application

Je vais prendre un exemple qui n'a pas beaucoup d'intérêt mais qui s'avère très instructif: Tomcat.

Et oui Tomcat est très bien intégré dans Eclipse donc ça serait bête de se limiter au debug à distance pour ce cas-là, mais comme le principe reste le même quelque soit l'application, gageons que ce sera instructif.

Aller c'est parti, voyons ça en détail:

Etape 1

Configuration de tomcat en mode debug:

Il suffit de rajouter les bonnes options dans le fichier catalina.bat (windows) ou catalina.sh (Linux/Unix), à savoir :
-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,address=8888,suspend=n

L'information importante ici est le numéro de port "8888" que l'on va utiliser dans l'étape suivante.
Pour finir l'étape 1, il n'y a plus qu'à redémarrer Tomcat.

Etape 2

Eclipse-Debug-NewRemoteJava.JPGDans Eclipse, aller dans le menu "Run" et choisir "Open Debug Dialog ..."
Ensuite dans le menu de gauche faire un clic droit sur "Remote Java Application" et choisir "New ..."


Ensuite entrer un nom, le projet associé (celui qui contient le code à debugger) puis spécifier le server et le port. Ici tomcat tourne sur le "localhost" et utilise le port "8888" pour le debuggage (le port de l'étape 1).

Eclipse-Debug-NewRemoteJavaConf

Attention: Tomcat continue de tourner sur son port principal (généralement 8080). Le port 8888 ne sert que pour debugger.

Et voilà! Plus qu'à cliquer sur "Debug" en bas à droite, et tout est prêt.

On peut utiliser les point d'arrêts "breakpoints" dans Eclipse, et le mode "Debug" s'affichera automatiquement lors de la prochaine requête vers Tomcat.


Rédigé par Bliz

Publié dans #Eclipse

Repost 0
Commenter cet article

Bliz 03/02/2010 18:01


Attention les options java -X ne sont pas standards et pas supportées par Sun (euh pardon ... Oracle). Mais bon pour l'instant ça marche!

Voir ici:
Options that begin with -X are non-standard (not guaranteed to be supported on all VM implementations), and are subject to change without notice in subsequent releases of the
JDK.