"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Déboguer sans points d'arrêt

Déboguer sans points d'arrêt

Publié le 2024-08-14
Parcourir:900

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.

Qu’est-ce que Pause ?

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 !

Depurar sem Pontos de Interrupção

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.

Limites

À 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.

Depurar sem Pontos de Interrupção

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.

Cas d'utilisation

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.

Applications irresponsables

Si vous rencontrez un gel de l'interface utilisateur (UI), cela est généralement dû au blocage du thread de l'interface utilisateur.

Depurar sem Pontos de Interrupção

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.

Polices manquantes

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 !

Depurar sem Pontos de Interrupção

Serrures

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.

Depurar sem Pontos de Interrupção

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.

Astuce secrète étape par étape

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.

Depurar sem Pontos de Interrupção

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 !

Conclusion

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 :

  • Debugger.godMode() – Piratez une application JVM avec le débogueur
  • Dépannage lent du débogueur
  • Débogage des applications inactives
  • Quel est le problème avec createDirectories() ? - Guide du profil du processeur

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.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/flounder4130/depurar-sem-pontos-de-interrupcao-5ekk?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel 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