Points d'arrêt et pas à pas

Piloter un débogueur : points d'arrêt simples et conditionnels, pas à pas principal, entrant et sortant, reprise, vues des variables et de la pile d'appels, espion.

  • 25 cartes
  • 5 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Mises en situation
  5. Comprendre

Quelques cartes du deck

  • Point d'arrêt : de quoi s'agit-il ?

    Voir la réponse

    Marque posée sur une ligne : quand l'exécution l'atteint, le débogueur la suspend juste avant d'exécuter cette ligne.

    Programme suspendu, on peut lire les variables, la pile d'appels, puis avancer ligne à ligne. La ligne marquée n'est pas encore exécutée.

  • Le débogueur est suspendu à la ligne 9. Sur quelle ligne s'arrête-t-il après un pas à pas entrant ?

    ```java
    public class Commande {
    static int prix(int q) {
    int base = q * 5;
    return base;
    }

    public static void main(String[] args) {
    int q = 3;
    int total = prix(q);
    total = total + 1;
    System.out.println(total);
    }
    }
    `

    • 3
    • 10
    • 2
    • 4
    Voir la réponse

    3

    Le pas à pas entrant descend dans prix et s'arrête à sa première instruction, ligne 3 (la ligne 2 n'est que la signature). Un pas à pas principal aurait terminé la ligne 9 en entier et serait allé à la ligne 10.

  • Un programme lancé en mode … s'interrompt aux points d'arrêt ; la commande de … le relance jusqu'au point d'arrêt suivant.

    Voir la réponse

    Un programme lancé en mode débogage s'interrompt aux points d'arrêt ; la commande de reprise le relance jusqu'au point d'arrêt suivant.

    Lancé normalement, le programme ignore les points d'arrêt. La reprise n'avance pas ligne à ligne : elle rend la main au programme jusqu'au prochain arrêt.

  • Point d'arrêt conditionnel : de quoi s'agit-il ?

    Voir la réponse

    Marque sur une ligne, assortie d'une expression booléenne : l'exécution ne s'interrompt que lorsque l'expression est vraie.

    Sur une méthode appelée pour chaque client, la condition id == 42 ne suspend le programme que pour le client qui pose problème, au lieu de s'arrêter à chaque appel.

  • Une boucle de 10 000 tours finit par rendre le stock négatif. Comment trouver le tour fautif sans passer 10 000 arrêts à la main ?

    • Poser un point d'arrêt conditionnel avec la condition stock < 0
    • Poser un espion sur stock et attendre qu'il s'arrête
    • Ajouter un affichage de stock dans la boucle et lire les 10 000 lignes
    • Poser un point d'arrêt simple en fin de boucle et reprendre jusqu'à l'avant-dernier tour
    Voir la réponse

    Poser un point d'arrêt conditionnel avec la condition stock < 0

    Seul un point d'arrêt conditionnel suspend le programme au premier tour où la condition devient vraie, avec toute la pile et toutes les variables visibles. Un espion affiche une valeur sans jamais interrompre.