Débogage des applications Java

Pour déboguer des programmes Java™ , vous pouvez utiliser l'application Java Debugger (JDB) ou d'autres débogueurs qui communiquent à l'aide de l'architecture JPDA (Java Platform Debugger Architecture) fournie par le SDK pour le système d'exploitation.

Pour plus d'informations sur le diagnostic des problèmes à l'aide de Java, voir Traitement des incidents et support.

Remarque: Sur les systèmes AIX® , le SDK inclut un plug-in pour le débogueur AIX , DBX. Bien que le plug-in DBX soit fourni comme partie du SDK, il ne bénéficie pas d'un support officiel. Toutefois, IBM® accepte les rapports de bogue.

Le débogueur Java

La base de données JDB est incluse dans le SDK. Utilisez la commande jdb pour démarrer le débogueur ; il se connecte à la JVM en utilisant JPDA.

Pour déboguer une application Java:
  1. Démarrez la machine virtuelle Java avec les options suivantes :
    • Sur les systèmes Windows :
      java -agentlib:jdwp=transport=dt_shmem,server=y,address=<port> <class>
    • Sous les autres systèmes :
      java -agentlib:jdwp=transport=dt_socket,server=y,address=<port> <class>

    La machine virtuelle Java démarre, mais interrompt l'exécution avant de démarrer l'application Java.

  2. Dans une session distincte, vous pouvez attacher le débogueur à la JVM avec la commande suivante :
    jdb -attach <port>
    Le débogueur se connecte à la machine virtuelle Java et vous pouvez désormais exécuter une série de commandes pour examiner et contrôler l'application Java ; par exemple, entrez run pour permettre à l'application Java de démarrer.
Pour déboguer des applications Java s'exécutant sur des postes de travail distants:
JPDA utilise une socket TCP/IP pour la connexion à la machine virtuelle distante.
  1. Démarrez la machine virtuelle Java avec les options suivantes :
    • Sur les systèmes Windows :
      java -agentlib:jdwp=transport=dt_shmem,server=y,address=<port> <class>
    • Sous les autres systèmes :
      java -agentlib:jdwp=transport=dt_socket,server=y,address=<port> <class>

    La machine virtuelle Java démarre, mais interrompt l'exécution avant de démarrer l'application Java.

  2. Raccordez le débogueur à la JVM distante :
    • Sur les systèmes Windows :
      jdb -connect com.sun.jdi.SocketAttach:hostname=<host>,port=<port>
    • Sous les autres systèmes :
      jdb -attach <host>:<port>
Pour plus d'informations :
  • Pour plus d'informations sur les options JDB, entrez : jdb -help
  • Pour plus d'informations sur les commandes JDB :
    1. Typejdb
    2. A l'invite jdb, entrez help
  • Pour plus d'informations sur JDB et JPDA et leur utilisation, consultez :