Debug


🐞 Utiliser le dĂ©bogueur Java dans VSCode

Le débogueur est un outil essentiel pour comprendre ce que fait ton programme, repérer des erreurs et analyser le comportement du code pas à pas.

Dans Visual Studio Code, tu peux facilement dĂ©boguer du Java avec l’extension adĂ©quate.


🧰 PrĂ©requis

Avant de commencer :

✔ Avoir Java installĂ© (JDK 11+ recommandĂ©) ✔ Avoir VSCode installĂ© ✔ Avoir installĂ© l’extension Java Extension Pack ou au minimum :

  • Debugger for Java
  • Language Support for Java

đŸ› ïž DĂ©marrer une session de dĂ©bogage

  1. Ouvre ton fichier .java
  2. Place un point d’arrĂȘt (🔮) en cliquant Ă  gauche d’une ligne de code
  3. Clique sur ▶ “Run and Debug” dans la barre latĂ©rale (ou F5)
  4. VSCode exĂ©cute ton programme et s’arrĂȘte au point d’arrĂȘt

📍 Point d’arrĂȘt : c’est quoi ?

Un point d’arrĂȘt (breakpoint) permet de stopper l’exĂ©cution Ă  une ligne prĂ©cise. Tu peux ensuite analyser les variables, exĂ©cuter ligne par ligne, etc.


đŸŽ›ïž Outils de contrĂŽle

Une fois arrĂȘtĂ© sur un point d’arrĂȘt, tu as accĂšs Ă  :

IcĂŽneNomFonction
▶ContinueContinue l’exĂ©cution jusqu’au prochain arrĂȘt
⏭Step OverExĂ©cute la ligne en cours, sans entrer dans les mĂ©thodes
đŸ”œStep IntoEntre dans la mĂ©thode appelĂ©e Ă  cette ligne
đŸ”ŒStep OutTermine la mĂ©thode actuelle et revient Ă  l’appelant
âčStopArrĂȘte complĂštement le programme

🔍 Visualiser les variables

Pendant le débogage, tu peux voir :

✅ Les valeurs des variables ✅ Le contenu des tableaux / objets ✅ Le call stack (pile des appels de fonctions)

Tu peux aussi survoler une variable avec la souris pour voir sa valeur.


✍ Exemple d’utilisation

public class Exemple {
    public static void main(String[] args) {
        int a = 5;
        int b = 0;
        int resultat = division(a, b);
        System.out.println("Résultat : " + resultat);
    }

    public static int division(int x, int y) {
        return x / y;
    }
}

đŸ’„ Ce programme va provoquer une erreur (division par zĂ©ro). Avec le dĂ©bogueur, tu peux voir les valeurs de x et y avant le crash !


🔧 Astuce : Modifier des valeurs pendant le dĂ©bogage

Tu peux parfois changer la valeur d’une variable en cours d’exĂ©cution directement depuis l’onglet “Variables” → clic droit → Set Value.


🔁 Recommandation : fichier launch.json (optionnel)

Pour des projets plus complexes, tu peux créer un fichier .vscode/launch.json pour configurer le comportement du débogueur (fichier à lancer, arguments, etc.).


🧠 À retenir

  • Le dĂ©bogueur permet de comprendre ton programme pas Ă  pas

  • Tu peux :

    • Placer des points d’arrĂȘt
    • Suivre l’exĂ©cution ligne par ligne
    • Voir et modifier les variables en temps rĂ©el
  • C’est un outil puissant pour apprendre, tester et corriger ton code


đŸ”č Exercice 1 : Observer les variables

CrĂ©e un programme avec 3 variables entiĂšres. Calcule leur somme dans une 4e variable. Ajoute un point d’arrĂȘt sur la ligne du calcul pour observer les valeurs.

public class Exo1 {
    public static void main(String[] args) {
        int a = 4;
        int b = 7;
        int c = 3;

        int somme = a + b + c; // ← Place ton point d’arrĂȘt ici

        System.out.println("Somme : " + somme);
    }
}

🎯 Objectif

  • Lancer le dĂ©bogueur (F5)
  • VĂ©rifier les valeurs de a, b, c et somme dans l’onglet Variables

đŸ”č Exercice 2 : Suivre une boucle pas Ă  pas

Utilise une boucle for pour additionner des nombres. Observe à chaque tour comment la variable total évolue.

public class Exo2 {
    public static void main(String[] args) {
        int total = 0;

        for (int i = 1; i <= 5; i++) {
            total += i; // ← Mets un point d’arrĂȘt ici
        }

        System.out.println("Résultat final : " + total);
    }
}

🎯 Objectif

  • Utiliser Step Over (⏭) pour avancer ligne par ligne
  • Observer l’évolution de total dans le debug panel

đŸ”č Exercice 3 : Comprendre une erreur

Ce programme va planter Ă  l’exĂ©cution. Utilise le dĂ©bogueur pour comprendre pourquoi.

public class Exo3 {
    public static void main(String[] args) {
        int[] nombres = {1, 2, 3};

        for (int i = 0; i <= 3; i++) {
            System.out.println(nombres[i]); // ← Mets un point d’arrĂȘt ici
        }
    }
}

🎯 Objectif

  • RepĂ©rer la cause de l’erreur
  • Utiliser le dĂ©bogueur pour voir la valeur de i au moment du crash
  • Corriger l’erreur (indice : attention Ă  l’indice 3)