Débogage d'un code python 1/2

Définition

Un débogueur permet d'exécuter le code ligne par ligne. A chaque ligne on peut avoir accès aux valeurs des variables.

L'usage du débogueur permet de comprendre la logique d'une fonction, d'un code ou d'une structure de contrôle... Il permet aussi les erreurs de logiques dans le script.

Exemple

On veut déboguer le code suivant :

1
#!/usr/bin/python
2
# -*- coding utf-8
3
"""
4
Utilisation du debogeur pdb de python
5
"""
6
7
8
def fct_add(val_op1, val_op2):
9
    """
10
    cette fonction additionne deux nombres
11
    paramètres
12
    ------------
13
    val_op1 : int
14
    val_op2 : int
15
    valeur de retour
16
    ------------
17
    int égal à la somme des deux nombrs
18
    """
19
    val = val_op1 - val_op2
20
    return val
21
22
23
if __name__ == '__main__':
24
    ma_val1 = int(input("Première valeur "))
25
    ma_val2 = int(input("Seconde valeur "))
26
    resultat = fct_add(ma_val1, ma_val2)
27
    print("Votre résultat est", resultat)
28

On enregistre le programme précédent dans le dossier c :/tmp. On lance l'invite de commande de Windows. On entre les commandes suivantes dans l'invite de commande :

1
python -m pdb c:\tmp\pdb_ex1.py

Le débogueur est lancé et s'arrête avant la première ligne du programme à exécuter.

Le résultat de la commande précédente. Le triple "  (""") correspond à ligne 5 du programme précédent.

On peut exécuter les 4 premières lignes du programme en entrant 4 fois la lettre n suivie de la touche Entrée (ou Rc) dans la console python.

La ligne ma_val2 = 25 n'est pas encore exécutée.

On peut avoir la valeur des variables en entrant simplement leur nom dans la console. S'il y a une ambiguïté entre le nom de la variable et une commande du débogueur, le nom de la variable doit être précédé d'un point d'exclamation ( ! )

La valeur de la variable nommée ma_val1 est de 13. La valeur de la variable nommée ma_val2 n'est pas encore connue donc lorsqu'on demande sa valeur un message d'erreur s'affiche : * NameError: name 'ma_val2' is not defined

La fin du programme est atteinte lorsque --Return-- s'affiche.

On peut entrer 2 fois la lettre n suivie de la touche Entrée (ou Rc) dans la console python pour relancer le débogueur avec le même programme.