Lire dans d'autres langues : Anglais Español 中文
Dans un scénario de débogage typique, vous définiriez des points d'arrêt pour indiquer au débogueur quand suspendre votre programme. Un point d'arrêt correspond généralement au moment qui marque le point de départ d'une enquête plus approfondie.
Décider où définir un point d'arrêt peut être difficile. Il peut y avoir des situations où la ligne exacte n'est pas claire, ou vous préférerez peut-être suspendre le programme en fonction du temps plutôt que d'un code spécifique.
Dans cet article, nous examinerons la fonctionnalité Pause Program d'IntelliJ IDEA – une technique de débogage moins connue qui peut être extrêmement puissante dans certains scénarios, y compris ceux décrits ci-dessus. Nous discuterons de ses cas d'utilisation et de ses limites, ainsi que découvrirons le secret étape par étape.
Pause Program est une fonctionnalité du débogueur IntelliJ IDEA qui vous permet de suspendre arbitrairement votre application à tout moment. De plus, vous n'avez même pas besoin de connaître le code de l'application. En fait, vous pouvez simplement l'ignorer !
Pour suspendre un programme, cliquez sur Pause du programme dans la barre d'outils du débogueur. Ensuite, le programme s'arrêtera en plein milieu de ce que vous faites.
À première vue, un programme en pause peut ressembler exactement à un programme qui a été suspendu à un point d'arrêt. Cependant, cela n'est vrai que dans une certaine mesure.
Il serait correct de considérer le Pause Program comme une sorte de thread dump plus. Vous pouvez toujours inspecter les variables et les threads comme vous le feriez normalement. Cependant, certaines des fonctionnalités les plus avancées, telles que Évaluer l'expression, ne fonctionneront pas.
Il existe d'innombrables façons d'utiliser le Programme Pause. Il peut souvent être utilisé de manière interchangeable avec les points d’arrêt traditionnels. Cependant, il existe des scénarios dans lesquels l'utilisation du Programme de pause est une approche plus appropriée. Considérons quelques-uns d'entre eux.
Si vous rencontrez un gel de l'interface utilisateur (UI), cela est généralement dû au blocage du fil de l'interface utilisateur.
Pause du programme pourrait être utile dans ce cas, car il vous permet de mettre l'application en pause lorsqu'elle ne répond pas et d'examiner la pile d'appels du thread d'interface utilisateur. Cela suffit généralement pour diagnostiquer le problème.
Comme mentionné précédemment, Pause Program vous permet d'ignorer simplement le code source, qui pourrait de toute façon vous manquer. Bien que ce scénario ne soit pas très courant, lorsque vous le rencontrez, les points d'arrêt ne vous seront d'aucune utilité.
C'est là que le Programme Pause entre en jeu !
Si vous soupçonnez un problème de synchronisation, tel qu'un blocage ou un livelock, Programme de pause peut vous aider à trouver les threads et les verrous exacts à l'origine du problème.
Dans ce cas, mettez le programme en pause et inspectez la liste des fils de discussion. Il montrera quels fils sont bloqués. Lorsque vous accédez au point d'exécution, vous verrez également les sections critiques où elles sont verrouillées. Ces informations peuvent vous aider à trouver une solution.
Comme je l'ai mentionné plus tôt, Pause Program limite votre accès à certaines fonctionnalités avancées du débogueur. Si vous avez essayé d'utiliser certaines fonctionnalités alors qu'une application est en pause, vous avez peut-être vu un message d'erreur indiquant Impossible d'évaluer les méthodes après l'action Suspendre.
Cependant, il existe un raccourci vers cette restriction.
Après avoir mis une application en pause, continuez à effectuer n'importe quelle action étape par étape. Step Into ou Step Over feront l'affaire. Une fois cela fait, vous serez dans une session de débogage normale, similaire à celle lorsque vous suspendez une application à l'aide d'un point d'arrêt. Toutes les fonctionnalités avancées sont désormais débloquées !
C'est tout pour aujourd'hui ! J'espère que vous trouverez ces trucs et astuces utiles.
Si vous êtes intéressé par d'autres articles liés au débogage et au profilage, consultez certains de mes autres articles :
S'il y a quelque chose de spécifique sur le débogage en Java que vous aimeriez que j'aborde, n'hésitez pas à nous contacter ! Votre avis permettra de prioriser et de publier le contenu qui vous intéresse le plus.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!