web-dev-qa-db-fra.com

L'application imprime "Écoute pour le transport dt_socket à l'adresse: 5005" et ne s'arrête pas

Je commence l'exécution de code avec les arguments typiques:

Java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 myPackage.myMainClassname

L'application démarre, imprime "Ecoute pour le transport dt_socket à l'adresse: 5005" et ... va plus loin! Sans aucune tentative d'attendre la connexion. JE PEUX me connecter pendant l'exécution et le débogage lui-même fonctionne. Mais pourquoi l'application n'attend-elle pas la connexion du débogueur?

On dirait que quelque chose est cassé dans ma configuration, mais je ne peux pas comprendre la cause première. J'ai essayé plusieurs façons de spécifier les paramètres de débogage, les différents ports, d'exécuter en tant qu'administrateur, de désactiver les pare-feu - rien n'y fait.

10
MiamiBeach

Vous devez spécifier suspend=y si vous voulez qu'il attende la connexion. Votre débogage fonctionne. Si vous essayez de vous connecter, vous pourrez. Vous avez probablement l'habitude d'utiliser suspend=y qui se bloque jusqu'à ce que la connexion soit établie.

Le comportement est attendu lorsque suspend=n.

17
Alexandar Petrov

Sélectionnez le menu "Exécuter/Modifier les configurations". Vérifiez: la boîte de dialogue "Modifier les configurations" apparaît. Cliquez sur l'icône "+", sélectionnez "Remote" dans la liste. Vérifiez: la nouvelle configuration avec le nom "Sans nom" apparaît dans la catégorie "À distance". Changez le nom de la configuration en quelque chose de plus sensé, comme "Remote Debug". Ne modifiez aucun autre paramètre, cliquez simplement sur "OK".

Exécutez l'application Web sous le débogueur

Démarrez la tâche gradle "appStartDebug" sous IntelliJ IDEA. Attention: n'essayez pas de démarrer cette tâche sous le débogueur. Exécutez-le en mode normal. Vérifiez: vous devriez voir "Ecoute pour le transport dt_socket à l'adresse: 5005" dans la fenêtre de sortie "Exécuter". Sélectionnez le menu "Run/Run ...", sélectionnez la configuration "Remote Debug", sélectionnez la commande "Debug". Vérifiez: vous devriez voir "Connecté à la machine virtuelle cible, adresse: 'localhost: 5005', transport: 'socket'" dans la fenêtre de sortie "Debug".

Maintenant, votre application web s'exécute sous le débogueur: vous pouvez définir des points d'arrêt, regarder/inspecter des variables etc.etc.

4
Igor Bykov