En plus d'écrire du code la plupart du temps, les programmeurs passent beaucoup de temps à déboguer du code. On dit même qu'il débogue le code ou est sur le point de déboguer le code. :)
Aujourd'hui, nous parlerons de quelques conseils pour le code de débogage et de quelques façons de localiser rapidement les problèmes lors de l'utilisation de débogueurs fournis par l'IDE.
Les amis qui voient cela, ne me considèrent pas immédiatement comme un titre de titre. Jetons un coup d'œil. Si vous avez de meilleures compétences, veuillez laisser un message.
Passons au sujet.
1 débogage multithread
Les amis qui ont développé trop d'applications filetées devraient avoir une compréhension. Parfois, afin d'observer les différents états de variables entre plusieurs threads, ainsi que l'acquisition de verrous, ils penseront à ajouter un point d'arrêt pour déboguer le code.
Lorsque le point d'arrêt s'arrête dans l'IDE, vous pouvez passer à un autre thread et exécuter d'autres codes sans s'affecter. Bien sûr, il y a un commutateur ici, qui est activé par défaut dans Eclipse.
Cependant, il n'est pas activé par défaut dans Intellij Idea. C'est-à-dire que si vous ajoutez un point d'arrêt dans l'idée du code, bien qu'un thread se décompose, les autres threads l'ont déjà exécuté.
Après avoir réglé la suspension du thread au mode Eclipse, le débogage des applications multi-thread peut également être démarré.
Les paramètres simples peuvent être directement au point d'arrêt et changer de suspension en thread
Modifiez les paramètres par défaut dans Idea: Passez au bouton radio "Thread", cliquez sur le bouton "Faire par défaut" qui apparaît
Une fois un thread cassé, vous pouvez basculer dans la fenêtre du thread et continuer à s'exécuter dans d'autres threads.
Changer ici dans Intellij Idea
Nous voyons que le thread principal et le pool-1-thread-1 sont en cours d'exécution, et passer à l'un ou l'autre peut continuer à fonctionner.
À l'heure actuelle, vous pouvez écrire une application multi-thread et stocker du contenu dans des conteneurs non-sécurisés comme Arrylist, puis observer pourquoi ils sont des thread-unsafe et quels problèmes se produiront, qui sont vifs et vifs.
PS: Permettez-moi de vous dire ici, c'est pourquoi il est recommandé de donner un nom significatif lors de la création d'un fil, au moins un nom reconnaissable. Sinon, vous ne pouvez pas distinguer quel fil est le vôtre, et il est difficile de changer.
2 Exécution arrière
L'exécution arriérée mentionnée ici est que parfois lorsque nous déboguons le code, chaque méthode est paresseuse et entre un débogage étape par étape. Lorsque vous observez le changement d'une valeur variable, une certaine méthode ne fait pas de suivi et la valeur change, et vous devez recommencer.
S'appuyant sur la fonction de l'exécution arrière, vous pouvez en arrière, tout comme la fonction de regretter les échecs lorsque vous jouez aux échecs. Bien sûr, le nom de cette opération de dos a été nommé par moi-même et est appelé trame Drop dans l'IDE.
Avec cette fonction, après avoir supprimé le cadre actuel, la valeur variable modifiée ne sera pas restaurée. Par exemple, si vous transmettez une liste dans la méthode actuellement appelée et ajoutez du contenu à la liste dans la méthode, alors lorsque vous passez à l'endroit où la méthode est appelée, la liste ne reviendra pas à son état précédent.
Mais lorsque la méthode est à nouveau appelée, vous pouvez observer lorsque la liste est modifiée, au moins vous n'avez pas besoin d'exécuter le programme. Vous pouvez même battre en retraite si vous n'êtes pas d'accord.
3 points de rupture conditionnels
Afin de déboguer le code, vous devez ajouter des points d'arrêt où vous souhaitez observer les modifications, puis les exécuter soigneusement étape par étape.
Cependant, s'il est dans une boucle, ou si la méthode est appelée par plusieurs threads en même temps, vous démissionnez soigneusement et constatez qu'il n'y a pas de contenu qui vous tient à cœur et que vous soyez à partir du début de la boucle, mais s'il n'y a toujours pas de contenu, vous commencerez à vous contrarier.
En fait, lors de l'ajout d'un point d'arrêt, nous pouvons ajouter certaines conditions au point d'arrêt, afin que le point d'arrêt ne prenne effet que lorsque les conditions spécifiées sont remplies.
Dans Intellij Idea, cliquez avec le bouton droit sur le point d'arrêt, et la boîte de condition de la figure ci-dessous apparaîtra, entrera simplement les conditions spécifiées.
Avec des points d'arrêt conditionnels, les codes non liés et non intéressés peuvent être ignorés directement.
4 Code de fragments
Je ne pensais pas à quel nom exprimer cela. Parfois, pendant le processus de débogage, je veux soudain de divertir un morceau de code lié à cela, mais pas dans le fichier source pour l'observer pour aider à l'analyse des problèmes. À ce stade, vous arrêterez le programme, ajouterez le code et l'exécuterez à nouveau?
Il existe une fonction dans l'idée d'exécuter des extraits de code, qui peuvent exécuter le code que vous écrivez temporairement dans le contexte du code actuel.
Par exemple, la méthode actuelle passe dans une liste, mais cette méthode n'a pas un élément que vous devez utiliser dans les conditions suivantes. Pour le moment, vous pouvez temporairement utiliser la fonction de l'exécution du code de fragment et en ajouter une.
Notez que dans Intellij Idea, le bouton ci-dessus, comme une petite calculatrice, est une fonction temporaire. Après avoir cliqué, la boîte d'évaluation de l'expression (Ctrl + F8) sous le bouton apparaîtra. Entrez le code et cliquez sur Évaluer dans le coin inférieur droit. La valeur de retour sera affichée au résultat.
Cela équivaut à modifier temporairement le contenu de la variable.
Ensuite, vous pouvez également appeler les méthodes de l'objet, exécuter des fonctions, obtenir des valeurs d'attribut, etc.
5 Afficher la valeur de modification de la variable
Chaque IDE fournit une fenêtre pour observer la valeur de variable de contexte actuelle lors du débogage du code. En fait, en plus de la visualisation, certains types de base non finale peuvent également être modifiés directement ici. De cette façon, si plusieurs boucles sont exécutées, la valeur attendue peut être restaurée à chaque fois et il n'est pas nécessaire de redémarrer le programme.
Les codes couramment utilisés complètent automatiquement les touches de raccourci
| clé de raccourci | illustrer |
|---|---|
| sel | System.out.println (""); |
| PSVM | Méthode principale |
Paramètres communs
Touches de raccourci couramment utilisées
| clé de raccourci | illustrer |
|---|---|
| Alt + ctrl + s | Paramètres ouvrir |
| Alt + ctrl + shift + s | Structrue du projet ouvert |
| Alt + Entrez | Solution rapide |
| Alt + / | Achèvement des mots automatiques |
| ALT + | Code généré automatiquement, tels que Setter, Getter, Tostring, etc. |
| Alt + shift + v | Déplacer les membres de la classe vers une autre classe |
| Ctrl + shift + f | Code de format |
| Ctrl + shift + u | Commutation de boîtier |
| Ctrl + shift + i | Afficher les définitions de code en fonction du contexte actuel, par exemple: lorsque le curseur s'arrête sur la méthode, la définition de la méthode sera affichée de la manière PopupView. |
| CTRL + Click | Sauter au code source |
| Shift + Shift | Rechercher tous les fichiers |
| Ctrl + e | Ouvrez la liste des fichiers récent accessibles |
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.