web-dev-qa-db-fra.com

Le débogueur IntelliJ reste bloqué

Je débogue une application Java normale, pas d'interface graphique, mais beaucoup de calculs et environ 5 appels dans la pile pour le thread principal lorsque le problème se produit. Fondamentalement, il continue à dire «collecte de données» dans la surveillance des variables locales.

 enter image description here

Ainsi, au lieu d'aller étape par étape, j'ai essayé d'ajouter un point d'arrêt immédiatement après une pression sur "Reprendre". Maintenant, il est écrit "Attendre la fin de la dernière commande du débogueur" .  enter image description here

Quelqu'un at-il déjà eu ce problème? Changer le débogueur est-il le seul moyen de comprendre cela?

14
Luca Mozzo

Sur IntelliJ (2017.1.4 Community Edition), les éléments suivants ont résolu le problème pour moi:

  • Fichier-> Paramètres
  • Tapez "toString"
  • Naviguez vers la construction, l'exécution, le déploiement-> le débogueur-> les vues de données-> Java
  • Cochez la case "Activer 'toString ()' vue:"
  • Décocher la case

Relancez le débogueur. 

22
CharlieB

Je viens de rencontrer ce qui ressemble au même problème. Dans mon cas, il s'agissait d'une classe (KafkaStream) dans la trace de pile de points d'arrêt avec une méthode "incorrecte" toString. La méthode toString bloque et par conséquent bloque le débogueur. J'ai testé la méthode toString dans le code de la ligne principale et le processus principal s'est arrêté (c'est-à-dire qu'il ne s'agit pas d'un problème spécifique au débogueur).

Voici la trace de pile pour mon thread qui a atteint le point d'arrêt (sur une ligne qui essayait juste de tester un attribut booléen de ma classe):

Hung Breakpoint Stacktrace

Intellij fournit un moyen de contourner mon problème. Il vous permet de remplacer la manière dont le débogueur rend la classe:

Work Around

Si votre problème revient, je suggère de prendre un vidage de thread (à l'intérieur ou à l'extérieur de l'EDI) et de voir ce que votre thread fait.

1
James Lent