Lire dans d'autres langues : English 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 qu'en fonction 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, et 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 au milieu de tout 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 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 de 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 de Pause Program 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 thread de l'interface utilisateur.
Pause Program pourrait être utile dans ce cas, car il vous permet de suspendre l'application 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 peut 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 de 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 fera 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 ces trucs et astuces vous seront utiles.
Si vous êtes intéressé par d'autres articles liés au débogage et au profilage, consultez certains de mes autres articles :
Si vous souhaitez que j'aborde quelque chose de spécifique concernant le débogage en Java, n'hésitez pas à nous contacter ! Votre avis nous aidera à prioriser et à publier le contenu qui vous intéresse le plus.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3