Contenu du cours
Java POO
Java POO
Débogueur
Qu'est-ce qu'un débogueur ?
Un débogueur est un outil qui permet de parcourir votre code étape par étape. Il est possible de mettre en pause l'exécution du code à un certain point et de démarrer le mode débogage pour observer le fonctionnement du code. Pour cela, il faut placer un marqueur (point d'arrêt) sur la ligne où l'on souhaite interrompre l'exécution.
Nous avons un code censé calculer la somme des nombres de un à dix, inclus. Le résultat attendu est 55
, mais nous obtenons 45
comme réponse. Plaçons un point d'arrêt au début de la boucle pour comprendre pourquoi la réponse ne correspond pas. Pour ce faire, il suffit de cliquer avec le bouton gauche de la souris sur le numéro de ligne, un marqueur rouge apparaîtra alors.
Voici le code de la capture d'écran, réécrit pour une meilleure lisibilité et clarté :
Main.java
package com.example; import java.util.Arrays; public class Main { public static void main(String[] args) { int result = 0; for(int i = 0; i < 10; i++) { result += 1; System.out.println(result); } } }
Outils dans le mode débogage
Examinons brièvement comment utiliser le débogueur et quels outils sont disponibles à l'intérieur.
Step Over : Ce bouton permet de poursuivre l'exécution du code ligne par ligne. Lorsqu'il est pressé, le débogueur exécute la ligne actuelle, passe à la suivante, puis s'arrête à nouveau ;
Step Into : Ce bouton permet d'entrer dans l'exécution d'une méthode. Dans notre exemple, il n'y a pas de méthode, mais s'il y en avait une, il serait possible d'y entrer pour observer ce qui s'y passe ;
Step Out : Ce bouton est l'opposé du précédent. Il permet de sortir de l'exécution d'une méthode ou d'une boucle ;
Les valeurs des variables sont visibles dans la fenêtre en bas ou à côté de ces variables. On peut clairement voir la valeur de la variable
result
, qui est initialement égale à zero.
Parcours du code
Pour parcourir le code, cliquer sur le bouton "Step Over". On entre dans la boucle for
, et la valeur de la variable i
apparaît, celle-ci étant créée à l'intérieur de la boucle for
. Initialement, cette variable est définie à zero.
Ensuite, cliquer plusieurs fois sur "Step Over" pour terminer une itération et se rendre dans la console afin de vérifier si quelque chose s'affiche à l'écran. On constate que la variable i
a augmenté de 1
, et que "0" a été affiché à l'écran, car les variables result
et i
étaient toutes deux initialement à zero. 0 + 0 = 0
-> c'est ce qui a été affiché à l'écran.
Passons les itérations d'affichage des autres nombres dans la console et allons jusqu'à la fin. C'est ici que l'on peut observer l'erreur principale dans notre boucle. Il est nécessaire d'afficher la somme des nombres de 0 à 10 inclus, mais 10 n'a pas été inclus. Ainsi, lorsque l'on voit que i = 9
et qu'il passe à 10
, on sort de la boucle puisque 10 !< 10
(10 n'est pas inférieur à 10).
Pour résoudre ce problème, il faut modifier la condition en i <= 10
. On obtiendra alors le résultat correct.
En résumé, en appuyant plusieurs fois sur le bouton "Step Over", on a pu identifier l'erreur dans la boucle et la corriger par la suite.
Remarque
Je n'ai présenté que les outils de base du débogueur. Pour apprendre à les utiliser, il est recommandé de s'exercer par soi-même. Vous pouvez écrire un programme similaire et observer de manière autonome le fonctionnement de chaque fonctionnalité. Le débogueur est un outil très utile car il permet d’identifier et de corriger les erreurs et bugs dans le code.
1. Quel est le but principal d’un débogueur ?
2. Que permet de faire un point d’arrêt dans un débogueur ?
3. Que fait le bouton "Step Over" du débogueur ?
Merci pour vos commentaires !