Eclipse : Remote debugging avec JDPA

Boris HUISGEN April 22, 2009

développement java eclipse jdpa

Parfois, il est indispensable de tester son application sous un environnement précis et de la débugger. Pour conserver les mêmes conditions d’exécution, un debug distant depuis son IDE est possible.

Le principe est qu’une connexion réseau est faite entre le frontend du débogueur (IDE) et un backend au niveau de la JVM (JDPA, Java Debug Architecture).

Deux méthodes sont possibles :

  • Socket attach : une socket est en écoute au niveau de la JVM. L’IDE va s’y connecter pour contrôler le flux d’exécution et récupérer les informations de debug.
  • Socket listen : une socket est en écoute sur la machine de développement. Dans ce cas, la JVM s’y connecte pour ensuite être contrôlée.

Le choix entre les deux dépend du filtrage réseau présent entre les 2 postes. Des options spécifiques sont donc à fournir à la JVM dont l’adresse IP / port de la socket et la méthode de remote debug.

Avec Eclipse, un remote debug par socket attach se fait ainsi :

  • Compilation des sources avec les options de debug
  • Déploiement / lancement de l’application sur la machine de test :
    $ java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 [...]</code>
  • Lancer l’application depuis l’IDE avec une configuration de remote debug en précisant l’IP + port du serveur d’exécution : menu Run -> Debug … -> Remote Java Application.

Le reste s’effectue comme un debug traditionnel.

See also

Gentoo : crash récurrent de nscd sous amd64
Read more
Mac OS X : installation de BackupPC
Read more
Mac OS X : installation de Nginx / PHP / MySQL
Read more