Modifications

Sauter à la navigation Sauter à la recherche
3 620 octets ajoutés ,  9 avril 2018 à 10:41
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.  
   −
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()
 +
}}
 
    
 
    
 
  <nowiki>#!/usr/bin/env python
 
  <nowiki>#!/usr/bin/env python
Ligne 77 : 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}}
29 917

modifications

Menu de navigation