dimanche 15 juin 2014

Debug à distance avec Eclipse

Un beau jour vous rencontrez des bugs sur une application déployée sur un serveur loin mais alors très loin, alors que tout fonctionne parfaitement sur votre poste en local =/

Dans ce contexte, la résolution de bug peut s'avérer très chronophage, voir impossible. Vous aurez alors besoin d'utiliser le debug à distance !

Pour cela, suivez les étapes ci-dessous :
  1. Lancer votre serveur en mode debug
  2. Lancer votre IDE en mode debug, en pointant sur l'application déployée
  3. Débugguer comme il vous plait !

Lancement du serveur en mode debug


Pour lancer votre serveur en mode debug, ajouter les paramètres suivant à la JVM
-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

Sous tomcat, vous pouvez ajouter la ligne suivante au fichier catalina.bat
set DEBUG_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n

Sous Weblogic, vous pouvez ajouter la ligne suivante au fichier startWSL.cmd
set DEBUG_OPTS = -Xdebug -Xrunjdwp:transport= dt_socket,address=1044,server=y,suspend=n
puis ajouter la variable %DEBUG_OPTS% après "%JAVA_HOME%\bin\java" dans votre script de lancement.

Jetons un oeil aux paramètres de l'option -Xrunjdwp :

  • transport=dt_socket : Définit le mode de connexion à la JVM, dans ce cas en utilisant un socket
  • server=y : Si 'y', la JVM se met en écoute sur le port précisé par l'argument 'adress'. Si 'n', la JVM essayera de se connecter au débuggeur à l'adresse précisée par l'argument 'adress'
  • suspend=n : Si 'y', le serveur se met en pause jusqu'à l'arrivée d'une connexion par un débuggeur (utile pour débugguer au démarrage, on peut aussi fixer un timeout pour attendre le débuggeur).
  • address=1044 : Numéro du port TCP/IP en écoute/sur lequel se connecter

Lancement de l'IDE en mode debug


Sous Eclipse, allez dans Debug -> Debug Configurations -> Remote Java Application. Ajouter une remote application à l'aide d'un clic-droit -> new. Préciser le nom du projet à débugguer, ainsi que l'adresse et le port d'écoute de la JVM. Cliquez sur 'Debug'.

Vous pouvez désormais débugguer comme à votre habitude en local !

Aucun commentaire:

Enregistrer un commentaire

Un avis ? Une question ?
N'hésitez pas à laissez des commentaires !