Ligne 30 : |
Ligne 30 : |
| == Installer PuDB == | | == Installer PuDB == |
| Si vous avez déjà préparé votre environnement Python ([[Pi-Python-Prepa|voir cet article]]), l'installation de PuDB sera une simple formalité. | | Si vous avez déjà préparé votre environnement Python ([[Pi-Python-Prepa|voir cet article]]), l'installation de PuDB sera une simple formalité. |
| + | |
| + | <nowiki>sudo pip install pudb</nowiki> |
| + | |
| + | Sur une version plus ancienne, vous pourriez avoir besoin d'utiliser easy_install : |
| | | |
| <nowiki>sudo easy_install pudb</nowiki> | | <nowiki>sudo easy_install pudb</nowiki> |
| | | |
− | == Démarré le déboggeur == | + | == Faire du deboggage == |
| + | Voici un petit exemple, pas à pas, expliquant comment faire du débogage. |
| + | |
| + | === Préparation de l'exemple === |
| + | |
| Pour illuster l'utilisation de PuDB, nous allons débogger le programme "[[Rasp-Hack-PiButton|raspi-button2.py]]" issu de ce tutoriel. | | Pour illuster l'utilisation de PuDB, nous allons débogger le programme "[[Rasp-Hack-PiButton|raspi-button2.py]]" issu de ce tutoriel. |
| | | |
Ligne 40 : |
Ligne 48 : |
| <nowiki>cp raspi-button2.py raspi-pudb.py</nowiki> | | <nowiki>cp raspi-button2.py raspi-pudb.py</nowiki> |
| | | |
| + | === Ajouter set_trace() === |
| Nous allons ensuite éditer le contenu de ''raspi-pudb.py'' pour activer de débogage. | | Nous allons ensuite éditer le contenu de ''raspi-pudb.py'' pour activer de débogage. |
| | | |
Ligne 46 : |
Ligne 55 : |
| Ci-dessous, nous avons repris les première lignes du programme Python. | | Ci-dessous, nous avons repris les première lignes du programme Python. |
| | | |
− | {{ambox | text =Notez l'ajout des lignes: | + | {{ambox | text = <strong>Notez l'ajout des lignes:</strong> |
| * from pudb import set_trace | | * from pudb import set_trace |
| * set_trace() | | * set_trace() |
Ligne 78 : |
Ligne 87 : |
| ... | | ... |
| </nowiki> | | </nowiki> |
| + | |
| + | === Démarrer le débuggeur === |
| + | Pour commencer le débogage de votre programme, il faut démarrer votre script Python avec la commande suivante: |
| + | |
| + | <nowiki>sudo python -m pudb raspi-pudb.py</nowiki> |
| + | |
| + | Il est capital d'utiliser un '''sudo''' parce que le débuggeur doit pouvoir accéder à la mémoire du processus (dans /dev/mem ). |
| + | |
| + | Au premier démarrage du débugger, vous serez invité à préciser vos préférences. Vous pouvez simplement vous déplacer sur le bouton [Ok] à l'aide de la flèche sur le clavier et accepter les paramètre en pressent la touche Entrée/Enter |
| + | |
| + | Et voila! |
| + | |
| + | [[Fichier:pudb-en-action.jpg]] |
| + | |
| + | Notez au passage la déclaration des variables (et leurs valeurs) en haut à droite. |
| + | |
| + | == Raccourcis clavier == |
| + | PuDB se contrôle au clavier. Si cela paraît un peu "basic" c'est aussi terriblement efficace en ssh :-) |
| + | |
| + | * Ctrl-p : Editer/modifier les préférences |
| + | |
| + | * n : passer à la ligne suivante ("n" pour ''next'' signifiant ''suivant'' en anglais) |
| + | * s : step into. S'applique aux appels de fonction. Le step into signifie que vous allez faire de l'exécution pas-à-pas <strong>dans la fonction</strong> plutôt que de simplement passer à la ligne suivante. |
| + | * c : continuer l'exécution du programme jusqu'au prochain breakpoint/point d'arrêt (ou prochaine erreur) |
| + | * r/f : finir l'exécution de la fonction ("r" correspondant à ''return'' signifiant ''retourner'' |
| + | * t : exécuter jusqu'à la position du curseur. |
| + | * e : Présente le traceback (liste des appel). Utilisable en cas d'exception ou mode post-mortem (quand votre programme est déclaré "mort" par Python) |
| + | |
| + | |
| + | * H : Se déplacer vers la ligne courante (en bas de la pile, sur le point d'être exécuté) |
| + | * u : Se déplacer vers l'appel de fonction précédent (''move up one stack frame'') |
| + | * d : Se déplacer vers l'appel de fonction suivante... pour revenir au point de départ (''move down one stack frame'') |
| + | |
| + | |
| + | * ! : '''Invoquer un shell python''' dans l'environnement actuel (également possible avec Ctrl-x).<br />Sera bien utile pour inspecter des variables et leur contenu (en tapant leur nom dans le shell). Presser Ctrl-D pour revenir à la session de débogage. |
| + | * o : Voir la console/écran de sortie |
| + | * q : quitter le débugger |
| + | |
| + | |
| + | * b : Activer/désactiver un point d'arrêt (breakpoint) sur lequel s'arrêtera le debugger. |
| + | * m : ouvrir un module |
| + | |
| + | |
| + | * j/k : haut/bas |
| + | * ctrl-u/d : monter/descendre d'une page |
| + | * h/l : déplacement a gauche/droite |
| | | |
| == Ressources == | | == Ressources == |
| * [http://pypi.python.org/pypi/pudb La page d'accueil de PuDB] | | * [http://pypi.python.org/pypi/pudb La page d'accueil de PuDB] |
| | | |
− | {{MCHAccord}} | + | {{MCH-Accord}} |