Le remote debugging consiste à connecter le debugger d’Eclipse à  une autre machine que celle sur laquelle il se trouve.

Très utile lorsque les serveurs local et distant ont des configurations différentes et qu’il est impossible recréer le bug en local.

Voici comment faire :

  • Mise en oeuvre sans serveur d’application :
  1. Déposer l’application à  la racine de du lecteur de la machine distante.
  2. Lancer l’application en ligne de commande : « java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,adress=8000 -jar <nomdelappli>.jar »

Explication des arguments :
-Xdebug : Demarre la JVM en mode debug
-Xrunjdwp : Comment se connecter pour le debug à  distance :
- transport=dt_socket : Type de connexion à la JVM.
- server=y : Demarrage de la JVM en mode serveur en attendant la connexion d’un programme extérieur (ce sera Eclipse).
- suspend=y : Suspend la JVM en attendant le débogueur (elle se relance une fois qu’il est connecté).
- adress=8000 : port sur lequel le débogueur pourra se connecter à  la JVM.
La JVM doit répondre qu’elle écoute le port 8000.

  1. On attache le débogueur d’Eclipse à  la JVM distante :

Aller dans « run>Debug » puis dans la colonne de gauche faire un clic droit sur « Remote Java Application » et choisir New, puis remplir le formulaire proposé convenablement :

Remote debugging avec Eclipse

Name : Le nom de votre connexion distante
Project : Spécifie le projet à  déboguer
Connection type : Type de connexion, socket généralement
Host : IP de la machine distante
Port : Le port que la JVM distante écoute, ici 8000
Allow termination of remote : Permet à  Eclipse d’arrêter la JVM distante.
Cliquer sur [Apply], puis sur [Debug] et là , la JVM qui était suspendue relance l’application.
Suivre le process habituel pour faire votre débug. (Window/Open perspective/Debug).

  • Mise en oeuvre avec serveur d’application, ici JBOSS :

Même process que précédemment, sauf :

  • Arrêter JBOSS
  • Décommenter la ligne ci-dessous dans le fichier de lancement de JBoss : <rép. d’instal de JBoss>\bin\run.bat :

« set JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y %JAVA_OPTS% »

  • Le port de connexion du débogueur sera le 8787 (celui par défaut dans run.bat)
  • Après clic sur [Apply] dans la fenêtre de configuration de la connexion à  la JVM distante :
  • Déployer l’application
  • Redémarrer JBoss et l’appli
  • Cliquer sur [Debug] pour commencer le déboguage.

Pour en savoir plus

Commentaires fermés

Comments are closed.