Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Pas à pas

Cette fois, le défi est de déboguer un programme existant, c’est-à-dire d’identifier, analyser et corriger une erreur qui s’y cache. Ce sera l’occasion d’apprendre à observer l’exécution pas à pas d’un programme, pour bien comprendre son fonctionnement.

  1. Exécutez les deux cellules ci-dessous pour faire apparaître le labyrinthe et exécuter le programme.

from laby.global_fr import *

Laby(niveau="1b")
debut()
avance()
droite()
avance()
prend()
avance()
droite()
pose()
gauche()
avance()
avance()
gauche()
avance()
droite()
ouvre()

Vous constaterez qu’à la fin la fourmi porte toujours son caillou et ne peux donc pas sortir.

  1. Utilisez les boutons de commande du labyrinthe pour suivre l’exécution du programme pas-à-pas, en marche avant et arrière, etc pour bien comprendre ce que fait la fourmi.

À ce stade, vous avez probablement déjà identifié le problème. Cependant il n’est pas évident de faire le lien entre chaque actions de la fourmi et la ligne du programme correspondante. Pour pallier cela, nous allons utiliser le débogueur.

  1. Activez le débogueur en cliquant sur l’insecte (bug en anglais) à droite de la barre de contrôle en haut de cette page :

L’insecte est devenu rouge, les numéros des lignes sont apparus à gauche dans les cellules de code, et une palette s’est ouverte à droite de cette feuille.

Le débogueur permet de définir des points d’arrêts dans le code : l’exécution du programme est mise en pause chaque fois qu’elle atteint un point d’arrêt.

  1. Ajoutez un point d’arrêt sur la deuxième ligne du programme en cliquant à gauche de la ligne avance() :

  1. Exécutez la cellule contenant le programme.

Vous remarquerez que la fourmi est en position de départ et que l’exécution est en cours (comme nous l’indique l’étoile entre crochets [*] à gauche de la cellule) : l’exécution est mise en pause sur la ligne du point d’arrêt, juste avant l’exécution de cette ligne.

  1. Appuyez sur la touche F10 (sur certains claviers: fn+F10) pour avancer d’un pas jusqu’à l’instruction suivante. Alternativement, vous pouvez cliquer sur la flèche dans la zone PILE DES APPELS de la palette à droite.

  1. Continuez à appuyer sur F10 et observez l’exécution du programme pas à pas. Pour relancer le programme depuis le début, exécutez à nouveau la cellule.

  2. Analysez l’erreur et corrigez la. Relancez l’exécution pas à pas pour vérifier.

  3. Cliquez sur l’insecte pour désactiver le débogueur.

Conclusion

Dans cette feuille, vous avez exécuté pas-à-pas un programme afin d’observer et comprendre précisément son fonctionnement. C’est une stratégie efficace à mettre en œuvre chaque fois que vous avez un doute pour prédire le comportement d’un programme, notamment pour déboguer des erreurs.

Vous avez aussi découvert les commandes essentielles pour utiliser le débogueur. Disponible dans Jupyter et tout bon environnement de développement, c’est un outil de choix pour vous aider à mettre en œuvre cette stratégie.

Au fur et à mesure que vous aborderez des programmes plus complexes, vous raffinerez vos stratégies d’observations et vous vous familiariserez avec la richesse des fonctionalités d’observation qu’offre le débogueur, notamment via la palette de droite dans Jupyter.