Est-il possible d'attacher le débogueur IntelliJ IDEA à un processus Java en cours d'exécution? Si oui, comment?
Est-il possible d'attacher le débogueur IntelliJ IDEA à un processus Java en cours d'exécution? Si oui, comment?
Réponses:
Oui! Voici comment vous l'avez configuré.
Créez une configuration d'exécution à distance:
La configuration ci-dessus fournit trois champs en lecture seule. Ce sont des options qui indiquent à la machine virtuelle Java d'ouvrir le port 5005 pour le débogage à distance lors de l'exécution de votre application. Ajoutez celle appropriée aux options JVM de l'application que vous déboguez. Une façon de procéder serait comme ceci:
export JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
Mais cela dépend de la façon dont vous exécutez votre application. Si vous ne savez pas lequel des trois s'applique à vous, commencez par le premier et descendez la liste jusqu'à ce que vous trouviez celui qui fonctionne.
Vous pouvez changer suspend=n
pour suspend=y
forcer votre application à attendre jusqu'à ce que vous vous connectiez à IntelliJ avant de démarrer. Cela est utile si le point d'arrêt que vous souhaitez atteindre se produit au démarrage de l'application.
Démarrez votre application comme vous le feriez normalement, puis dans IntelliJ sélectionnez la nouvelle configuration et cliquez sur «Déboguer».
IntelliJ se connectera à la JVM et lancera le débogage à distance.
Vous pouvez maintenant déboguer l'application en ajoutant des points d'arrêt à votre code où vous le souhaitez. La sortie de l'application apparaîtra toujours là où elle était auparavant, mais vos points d'arrêt atteindront IntelliJ.
Remote
- être n'est pas disponible sur l'édition communautaire? J'utilise la version payante. Quelqu'un avec l'édition communautaire peut-il confirmer?
System.out.println
IntelliJ lors du débogage à distance?
C'est possible, mais vous devez ajouter des indicateurs JVM lorsque vous démarrez votre application.
Vous devez ajouter une configuration de débogage à distance: Modifier la configuration -> À distance.
Ensuite, vous trouverez dans la fenêtre de dialogue affichée des paramètres que vous devez ajouter à l'exécution du programme, comme:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
Ensuite, lorsque votre application est lancée, vous pouvez attacher votre débogueur. Si vous voulez que votre application attende que le débogueur soit connecté, changez simplement l'indicateur de suspension en y ( suspend=y
)
dans AndroidStudio ou idée
ajouter "VM Options" Config
“-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005”
retenir "adresse"
J'utilise également l'application Tomcat GUI (dans mon cas: C: \ tomcat \ bin \ Tomcat9w.bin).
Accédez à l' onglet Java :
Définissez vos propriétés Java, par exemple:
Machine virtuelle Java
C: \ Program Files \ Java \ jre-10.0.2 \ bin \ server \ jvm.dll
Machine virtuelle Java
C: \ tomcat \ bin \ bootstrap.jar; C: \ tomcat \ bin \ tomcat-juli.jar
Options Java :
-Dcatalina.home = C: \ tomcat
-Dcatalina.base = C: \ tomcat
-Djava.io.tmpdir = C: \ tomcat \ temp
-Djava.util.logging.config.file = C: \ tomcat \ conf \ logging.properties
-agentlib: jdwp = transport = dt_socket, server = y, suspend = n, address = *: 8000
Options Java 9 :
--add-opens = java.base / java.lang = TOUT NON NOMMÉ
--add-opens = java.base / java.io = TOUT NON NOMMÉ
--add-opens = java.rmi / sun.rmi.transport = TOUT NON NOMMÉ