IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Remote debugging sur cible ARM


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 122
    Points : 82
    Points
    82
    Par défaut Remote debugging sur cible ARM
    Bjr,
    Dans un autre post Servlet et thread non exécutée,
    Citation Envoyé par tchize_
    Le remote debugging est ton ami pour ce genre de situation
    ....
    Surtout que tu as juste à ajouter ça aux arguments de java sur le serveur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n
    Et pour m'éviter quelques galères, je mets en service ce type de debug; mais j'ai quelques soucis pour finaliser l'exécution de ce mode de travail.
    J'ai donc ajouté à la JVM sur la cible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    root@ubuntu:/home/hubert# java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n
    Faut-il préciser le nom de l'application ProjetTest.war après les paramètres?

    Sur le wiki Netbeans, en début de page il est indiqué que l'application doit être compilée avec l'option -g.
    Donc sur ProjetTest/Properties/Build/Compiling/Additional Compiler Options j'ai ajouté -g
    Ensuite j'effectue un Attach Debugger au niveau de Netbeans :

    Nom : DebugAttach.png
Affichages : 256
Taille : 7,8 Ko
    avec 192.168.1.89 l'adresse de la cible ARM.
    Puis après avoir "uploader" le fichier ProjetTest.war,je lance tomcat sur la cible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    root@ubuntu:/home/hubert# service tomcat7 start
    Puis j'exécute le mode Debug de Netbeans, mais là, il me lance l'application sur le Tomcat local à mon PC.
    Je crois que je fais une erreur d'interprétation

  2. #2
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 122
    Points : 82
    Points
    82
    Par défaut
    Les paramètres sont pour l'environnement de Tomcat et pas directement pour la JVM, donc on crée le fichier :
    repertoiretomcat/bin/setenv.sh :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #!/bin/sh
    CATALINA_OPTS="-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n"
    Mais pas d'amélioration sur la fonctionnalité Debug.

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Si tu met suspend=y au lieu de suspend=n, le tomcat se met bien en attente d'un debugger avant de démarrer?
    Tu peux nous donner les contenu de catalina.out? Ainsi que le résultat de
    Pour netbeans, je ne connait pas à fond, mais si il lance tomcat, c'est qu'il a pas compris qu'il fallait débugger une cible distante. Tu es sur d'avoir bien lancé dans netbean la bonne configuration?

  4. #4
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 122
    Points : 82
    Points
    82
    Par défaut
    Merci pour les indications; voilà les résultats obtenus sur la cible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    root@ubuntu:/home/hubert# ps aux|grep java
    root      1928  4.2  5.6 343804 46792 pts/1    Sl   18:24   0:14 /usr/bin/java -Djava.util.logging.config.file=/usr/share/tomcat7/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n -Djava.endorsed.dirs=/usr/share/tomcat7/endorsed -classpath /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar -Dcatalina.base=/usr/share/tomcat7 -Dcatalina.home=/usr/share/tomcat7 -Djava.io.tmpdir=/usr/share/tomcat7/temp org.apache.catalina.startup.Bootstrap start
    root      1956  0.0  0.0   5252   752 pts/1    S+   18:30   0:00 grep --color=auto java
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    root@ubuntu:/home/hubert# netstat -lptu
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 localhost:domain        *:*                     LISTEN      422/dnsmasq     
    tcp        0      0 *:2423                  *:*                     LISTEN      164/sshd        
    tcp        0      0 *:4000                  *:*                     LISTEN      1928/java       
    tcp6       0      0 localhost:8005          [::]:*                  LISTEN      1928/java       
    tcp6       0      0 [::]:8009               [::]:*                  LISTEN      1928/java       
    tcp6       0      0 [::]:http-alt           [::]:*                  LISTEN      1928/java       
    tcp6       0      0 [::]:2423               [::]:*                  LISTEN      164/sshd        
    udp        0      0 localhost:domain        *:*                                 422/dnsmasq     
    udp        0      0 *:bootpc                *:*                                 398/dhclient
    ainsi que la partie de catalina.out correspondant au démarrage de Tomcat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    Listening for transport dt_socket at address: 4000
    Mar 13, 2015 6:35:07 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Server version:        Apache Tomcat/7.0.59
    Mar 13, 2015 6:35:07 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Server built:          Jan 28 2015 15:51:10 UTC
    Mar 13, 2015 6:35:07 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Server number:         7.0.59.0
    Mar 13, 2015 6:35:07 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: OS Name:               Linux
    Mar 13, 2015 6:35:07 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: OS Version:            3.4.29+
    Mar 13, 2015 6:35:07 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Architecture:          arm
    Mar 13, 2015 6:35:07 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Java Home:             /opt/jdk1.7.0_60/jre
    Mar 13, 2015 6:35:07 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: JVM Version:           1.7.0_60-b19
    Mar 13, 2015 6:35:07 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: JVM Vendor:            Oracle Corporation
    Mar 13, 2015 6:35:07 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: CATALINA_BASE:         /usr/share/tomcat7
    Mar 13, 2015 6:35:07 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: CATALINA_HOME:         /usr/share/tomcat7
    Mar 13, 2015 6:35:07 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Command line argument: -Djava.util.logging.config.file=/usr/share/tomcat7/conf/logging.properties
    Mar 13, 2015 6:35:07 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
    Mar 13, 2015 6:35:07 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Command line argument: -Xdebug
    Mar 13, 2015 6:35:07 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Command line argument: -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n
    Mar 13, 2015 6:35:07 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Command line argument: -Djava.endorsed.dirs=/usr/share/tomcat7/endorsed
    Mar 13, 2015 6:35:07 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Command line argument: -Dcatalina.base=/usr/share/tomcat7
    Mar 13, 2015 6:35:07 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Command line argument: -Dcatalina.home=/usr/share/tomcat7
    Mar 13, 2015 6:35:07 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Command line argument: -Djava.io.tmpdir=/usr/share/tomcat7/temp
    Mar 13, 2015 6:35:07 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
    INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/arm:/lib:/usr/lib
    Mar 13, 2015 6:35:08 PM org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["http-bio-8080"]
    Mar 13, 2015 6:35:08 PM org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
    Mar 13, 2015 6:35:08 PM org.apache.catalina.startup.Catalina load
    INFO: Initialization processed in 4192 ms
    Mar 13, 2015 6:35:09 PM org.apache.catalina.core.StandardService startInternal
    INFO: Starting service Catalina
    Mar 13, 2015 6:35:09 PM org.apache.catalina.core.StandardEngine startInternal
    INFO: Starting Servlet Engine: Apache Tomcat/7.0.59
    Mar 13, 2015 6:35:09 PM org.apache.catalina.startup.HostConfig deployWAR
    INFO: Deploying web application archive /opt/apache-tomcat-7.0.59/webapps/RelaisBasique.war
    Mar 13, 2015 6:35:10 PM org.apache.catalina.deploy.WebXml setVersion
    WARNING: Unknown version string [3.1]. Default version will be used.
    Mar 13, 2015 6:35:12 PM org.apache.catalina.startup.HostConfig deployWAR
    INFO: Deployment of web application archive /opt/apache-tomcat-7.0.59/webapps/RelaisBasique.war has finished in 2,624 ms
    Mar 13, 2015 6:35:12 PM org.apache.catalina.startup.HostConfig deployWAR
    INFO: Deploying web application archive /opt/apache-tomcat-7.0.59/webapps/TestThread.war
    Mar 13, 2015 6:35:12 PM org.apache.catalina.deploy.WebXml setVersion
    WARNING: Unknown version string [3.1]. Default version will be used.
    Mar 13, 2015 6:35:12 PM org.apache.catalina.startup.HostConfig deployWAR
    INFO: Deployment of web application archive /opt/apache-tomcat-7.0.59/webapps/TestThread.war has finished in 575 ms
    Mar 13, 2015 6:35:12 PM org.apache.catalina.startup.HostConfig deployDirectory
    INFO: Deploying web application directory /opt/apache-tomcat-7.0.59/webapps/examples
    Mar 13, 2015 6:35:15 PM org.apache.catalina.startup.HostConfig deployDirectory
    INFO: Deployment of web application directory /opt/apache-tomcat-7.0.59/webapps/examples has finished in 2,744 ms
    Mar 13, 2015 6:35:15 PM org.apache.catalina.startup.HostConfig deployDirectory
    INFO: Deploying web application directory /opt/apache-tomcat-7.0.59/webapps/ROOT
    Mar 13, 2015 6:35:15 PM org.apache.catalina.startup.HostConfig deployDirectory
    INFO: Deployment of web application directory /opt/apache-tomcat-7.0.59/webapps/ROOT has finished in 369 ms
    Mar 13, 2015 6:35:15 PM org.apache.catalina.startup.HostConfig deployDirectory
    INFO: Deploying web application directory /opt/apache-tomcat-7.0.59/webapps/manager
    Mar 13, 2015 6:35:16 PM org.apache.catalina.startup.HostConfig deployDirectory
    INFO: Deployment of web application directory /opt/apache-tomcat-7.0.59/webapps/manager has finished in 582 ms
    Mar 13, 2015 6:35:16 PM org.apache.catalina.startup.HostConfig deployDirectory
    INFO: Deploying web application directory /opt/apache-tomcat-7.0.59/webapps/host-manager
    Mar 13, 2015 6:35:16 PM org.apache.catalina.startup.HostConfig deployDirectory
    INFO: Deployment of web application directory /opt/apache-tomcat-7.0.59/webapps/host-manager has finished in 343 ms
    Mar 13, 2015 6:35:16 PM org.apache.catalina.startup.HostConfig deployDirectory
    INFO: Deploying web application directory /opt/apache-tomcat-7.0.59/webapps/docs
    Mar 13, 2015 6:35:17 PM org.apache.catalina.startup.HostConfig deployDirectory
    INFO: Deployment of web application directory /opt/apache-tomcat-7.0.59/webapps/docs has finished in 281 ms
    Mar 13, 2015 6:35:17 PM org.apache.coyote.AbstractProtocol start
    INFO: Starting ProtocolHandler ["http-bio-8080"]
    Mar 13, 2015 6:35:17 PM org.apache.coyote.AbstractProtocol start
    INFO: Starting ProtocolHandler ["ajp-bio-8009"]
    Mar 13, 2015 6:35:17 PM org.apache.catalina.startup.Catalina start
    INFO: Server startup in 8164 ms
    Concernant Netbeans, au lancement du debug, il ouvre Firefox avec localhost:8080, je n'ai pas réussi à lui spécifier l'adresse distante 192.168.1.89.
    Concernant le paramètre suspend=y, je vais essayer.

    Edit :

    Ce que l'on obtient (avec l'option suspend=y) au démarrage de Tomcat dans catalina.out et uniquement celà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ERROR: transport error 202: bind failed: Address already in use
    ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
    JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:750]
    FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
    Edit (bis) :
    Les erreurs précédentes proviennent du fait qu'après mise du paramètre suspend=y et tomcat start puis tomcat stop : cette dernière ne s'effectue pas correctement et un nouveau tomcat start produit les erreurs ci-dessus.

    Les erreurs produites par tomcat stop avec suspend=y :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    root@ubuntu:/home/hubert# service tomcat7 stop
    Using CATALINA_BASE:   /usr/share/tomcat7
    Using CATALINA_HOME:   /usr/share/tomcat7
    Using CATALINA_TMPDIR: /usr/share/tomcat7/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar
    Mar 13, 2015 7:16:29 PM org.apache.catalina.startup.Catalina stopServer
    SEVERE: Could not contact localhost:8005. Tomcat may not be running.
    Mar 13, 2015 7:16:29 PM org.apache.catalina.startup.Catalina stopServer
    SEVERE: Catalina.stop: 
    java.net.ConnectException: Connection refused
    	at java.net.PlainSocketImpl.socketConnect(Native Method)
    	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
    	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
    	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
    	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    	at java.net.Socket.connect(Socket.java:579)
    	at java.net.Socket.connect(Socket.java:528)
    	at java.net.Socket.<init>(Socket.java:425)
    	at java.net.Socket.<init>(Socket.java:208)
    	at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:498)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:606)
    	at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:370)
    	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:457)

  5. #5
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 122
    Points : 82
    Points
    82
    Par défaut
    Bon prendre un peu de recul,le temps de bien poser les choses, on finit par y arriver
    Donc du côté Tomcat, à l'écoute sur le port 4000 celà fonctionne.
    Restait plus que Netbeans, et la façon de proposer le remote debugging n'était pas très claire.
    Tout d'abord lors d'un debug en local d'une appli web, le navigateur est automatiquement démarré sur le serveur en localhost.. En mode remote, il n'y a pas moyen de spécifier une adresse sur laquelle le navigateur puisse démarrer (en tout cas, je n'ai pas trouvé); il faut le faire manuellement.
    Ensuite lors du choix du mode Debug, on a 2 items :
    • Debug Project (pour le debug en local)
    • Attach debugger (pour spécifier les paramètres du remote debug)

    L'erreur d'interprétation de ma part vient du fait que choisir le second n'invalide pas le premier (pas de passage en grisé); donc après la sélection de Attach Debugger, j'avais une fenêtre qui m'affichait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    No variables to display because there is no current thread.
    J'en concluais que je n'avais pas activé l'environnement, d'ou mon choix du mode Debug Project qui me faisait repasser en local (d'ou certaines choses non significatives dans le cas de mon application).
    Donc après la définition des paramètres Attach Debugger, lancer le browser et là on est directement dans l'application.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. remote debug impossible sur un autre domaine
    Par giova_fr dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 15/06/2011, 10h33
  2. Remote Debug sur Delphi 6
    Par silmortes dans le forum Delphi
    Réponses: 4
    Dernier message: 07/03/2007, 08h12
  3. [PPC][C#] Problème debug sur device.
    Par Roach- dans le forum Windows Forms
    Réponses: 2
    Dernier message: 01/12/2005, 15h42
  4. [Debutant] le remote debug sous eclipse
    Par vosaray dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/09/2005, 13h08
  5. Création d'un "remote server" sur un réseau
    Par Papino dans le forum Débuter
    Réponses: 2
    Dernier message: 05/09/2004, 16h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo