Pré. | Proc. |
Débogueur Java JDWP
Java propose deux technologies de débogage principales : un système basé sur un agent en cours de processus appelé Java Virtual Machine Tools Interface (JVMTI) et un paradigme basé sur un socket appelé Java Déboguer Wire Protocol (JDWP). Une Virtual Machine Java peut nommer l'un ou l'autre de ces éléments, mais pas les deux, et la fonctionnalité doit être configurée au démarrage de la JVM.
Exigences du système
- Le débogueur JDWP Enterprise Architect ne pourra communiquer qu'avec une JVM démarrée avec l'option « JDWP ». Voici un exemple d'option de ligne de commande :
java -agentlib:jdwp=transport=dt_socket,address=localhost:9000,server=y,suspend=n -cp "c:\java\myapp;%classpath%" demo.myApp "param1" "param2" - La Virtual Machine ne doit pas être actuellement attachée à un débogueur.
- Il n'est pas possible qu'une machine virtuelle soit déboguée par Enterprise Architect et Eclipse en même temps.
Paramètres du script d'analyse
Champ/Bouton |
Action |
Voir aussi |
---|---|---|
Débogueur |
Cliquez sur la flèche déroulante et sélectionnez Java (JDWP). |
|
Exécuter |
Cliquez sur ce bouton radio pour exécuter le débogueur lorsque le script est exécuté. |
|
Répertoire par défaut |
Sans objet – laisser vide. |
|
Parcours d'application |
Sans objet – laisser vide. |
|
Arguments de la ligne de commande |
Sans objet – laisser vide. |
|
Construire d'abord |
Sans objet – laisser vide. |
|
Afficher la console |
Sans objet – laisser vide. |
|
Afficher les messages de diagnostic |
Sans objet – laisser vide. |
|
Connexion |
Sans objet – laisser vide. |
|
Port |
Définissez le port d'application attribué au processus VM lors du démarrage, dans les options de ligne de commande Java. |
Options de ligne de commande Java |
Hôte |
Définir l'ordinateur hôte (par défaut, localhost) Si la machine virtuelle s'exécute sur un ordinateur en réseau, entrez le nom du réseau ou l'URL ici. Par défaut, le débogage tentera de se connecter au port que vous spécifiez sur la machine locale. |
|
Source |
Il s'agit de l'équivalent source du paramètre classpath en Java. Répertoriez la racine de chaque arborescence source ; spécifiez au moins un chemin d'accès à la racine source. Si vous en spécifiez plusieurs, séparez-les par un point-virgule ; par exemple : c:\monapplication\src ; c:\monserveur\src Lorsqu'un point d'arrêt se produit, le débogueur recherche la source Java dans chacune des arborescences sources répertoriées ici. |
|
Enregistrement |
Activer ou désactiver la journalisation d'informations supplémentaires du débogueur. Les valeurs possibles incluent :
|
|
Sortir |
Spécifiez le nom complet du fichier log local à écrire. Si le dossier n'existe pas déjà, aucun log ne sera créé. Le fichier log contient généralement un vidage des octets envoyés entre le débogueur et la machine virtuelle. |
|
Plate-forme |
Sélectionnez Java. |
Configurer les ports pour le débogage
Le débogueur ne peut déboguer qu'une seule machine virtuelle à la fois ; il utilise un seul port pour communiquer avec la machine virtuelle. Le port de l'application à déboguer est attribué lors de la création de la machine virtuelle.
Débogage local
Lorsque Enterprise Architect et la machine virtuelle Java s'exécutent sur la même machine, vous pouvez effectuer un débogage local. Il est nécessaire de lancer la machine virtuelle avec le transport JDWP activé. Consultez la documentation sur Java Platform Débogueur Architecture (JPDA) chez Oracle pour connaître les spécifications des options de ligne de commande. Par exemple :
java -agentlib:jdwp=transport=dt_socket,address=localhost:9000,server=y,suspend=n -cp "c:\samples\java\myapp;%classpath%" exemples.MyApp "param1" "param2"
Dans cet exemple, les valeurs du script Analyzer seraient « hôte : localhost » et « port : 9000 ».
Débogage à distance
Lorsque Enterprise Architect s'exécute sur la machine locale et que la machine virtuelle Java s'exécute sur une machine distante, vous pouvez effectuer un débogage à distance. Il est nécessaire de lancer la machine virtuelle avec le transport JDWP activé. Consultez la documentation sur JPDA chez Oracle pour connaître les spécifications des options de ligne de commande. Voici un exemple, où l'ordinateur distant porte le nom de réseau testmachine1 :
java -agentlib:jdwp=transport=dt_socket,address=9000,server=y,suspend=n -cp "c:\samples\java\myapp;%classpath%" exemples.MyApp "param1" "param2"
Note l'absence de nom d'hôte dans l'adresse. Cela signifie que la machine virtuelle écoutera une connexion provenant de n'importe quelle machine. Dans cet exemple, les valeurs du script Analyzer seraient « host: testmachine1 » et « port: 9000 ».