Différences entre versions de « Pi-WebIde-Debugeur »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
 
(10 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 
{{Pi-WebIde-NAV}}
 
{{Pi-WebIde-NAV}}
  
{{bloc-etroit|text=Le débogueur python du WebIDE peut être utile dans de nombreuses situations. Le débogueur vous permet de parcourir votre programme python en temps réel. Ceci est en contraste avec le visualiseur, qui parcoure le programme dans son entièreté , et vous permet de le parcourir.
+
== Introduction ==
 +
{{bloc-etroit|text=Le débogueur python du WebIDE peut être utile dans de nombreuses situations.  
  
Quand souhaitez vous d'utiliser le débogueur? Un scénario serait si vous n'obtiendriez pas les valeurs escomptées en retour d'une fonction, ou vos variables ne contiendraient pas les valeurs attendues. Vous pouvez lancer le débogage, poser des points d'arrêt (breakpoint) où vous pensez que le code pose problème, et vous voyez exactement les valeurs rendues par le programme. De plus, vous pouvez utiliser les broches GPIO pour allumer diverses LEDs. En progressant dans votre programme vous pourrez allumer ou éteindre selon vos besoin.}}
+
Le débogueur vous permet d'exécuter votre programme Python pas-à-pas en temps réel. Ce qui contraste avec le visualiseur, qui exécute le programme dans son entièreté, et vous permet ensuite d'en parcourir le contenu.
 +
 
 +
=== Quand utiliser le débogueur? ===
 +
 
 +
Parmi les scénario, il y a le cas de la fonction qui ne retourne pas les résultats/valeurs escomptées, ou une variable qui ne semble pas contenir la valeur attendue.  
 +
 
 +
Dans ces cas de figure, vous pouvez lancer le débugeur et placer des points d'arrêt ("breakpoint" en anglais) où vous pensez que le code pose problème et voir quelles sont les valeurs à un moment donné de l'exécution de votre programme.  
 +
 
 +
Vous pouvez également utiliser les broches du GPIO pour allumer différentes LEDs. Vous les verrez s'allumer et s'éteindre au fur et à mesure de l'exécution pas-à-pas de votre programme.}}
 +
 
 +
== Utiliser le debuggeur ==
  
 
Pour utiliser le débogueur, ouvrez un fichier python, et cliquez sur "Debug" dans la "barre d'outils" :  
 
Pour utiliser le débogueur, ouvrez un fichier python, et cliquez sur "Debug" dans la "barre d'outils" :  
  
[[Fichier:Pi-WebIde-Debug-01.png]] [http://learn.adafruit.com/assets/3466 ]
+
[[Fichier:Pi-WebIde-Debug-01.png]]  
 +
 
 +
après avoir cliqué sur le lien, la barre d'outils change pour afficher les options débogage dans la barre. Cette modification intervient en quelques secondes.
 +
 
 +
L'éditeur s'affiche, et vous pouvez effectuer des modifications dans votre code pendant le débogage.
 +
 
 +
Lorsque le débogueur est prêt, vous verrez un écran comme celui qui suit :
 +
 
 +
[[Fichier:Pi-WebIde-Debug-02.png]]
 +
 
 +
Le débogueur réalise plus de choses que simplement exécuter le programme (également plus que l'utilisation visualiseur).
 +
 
 +
=== La barre d'outils ===
 +
La première chose que vous remarquerez c'est les nouveau boutons qui apparaissent dans la la barre d'outils (#1):
 +
 
 +
* '''Save/Restart''': (''sauver et redémarrer'') permettent de sauvegarder vos modifications dans le fichier et de redémarrer le débogueur en un seul clic. Vous pouvez aussi opter pour le raccourci clavier "control-s", ou "command-s" (sous OS X).
 +
* '''Exit''': (''sortir'') ce lien permettra de sortir du débogueur.
 +
* '''Run''': (''exécuter'' ce lien poursuit l'exécution de votre programme soit jusqu'à la fin, soit jusqu'au prochain point d'arrêt<br />. S'il existe un point d'arrêt actif (activé en cliquant dans la marge (#6)), le débogueur stoppera le programme dessus et attendra vos instructions.
 +
* '''Step Over''': (''pas-à-pas'') fera progresser l'exécution de votre programme d'une ligne puis le débogueur attend vos instructions. Le mode pas-à-pas permet donc d'exécuter un programme ligne par ligne jusqu'à la fin.<br />La fonction "Step-Over" (''pas au dessus'' en traduction littérale) ignore le détail d'exécution des fonctions appelées. Donc, si vous avez une fonction foo() appelée par votre programme, le débogueur exécutera la fonction en une seule opération et passera à la ligne suivante de votre programme.<br />''C'est un mode de débogage pratique '''si vous ne voulez pas savoir''' ce qui se passe dans les différentes fonctions utilisées.''.  
 +
* '''Step in''': (''pas dedans'' en traduction littérale). C'est aussi une exécution pas-à-pas comme décrit ci-dessus '''mais''' lorsque le débogueur rencontrera un appel de fonction, il sautera dans la définition de la fonction où vous pourrez continuer l'exécution pas à pas.<br />Une fois le débogage de la fonction terminée, le débogueur vous replacera tout seul au point d'appel de cette dernière où vous pourrez poursuivre le débogage pas-à-pas.<br />''C'est un mode de débogage pratique '''si vous voulez savoir''' ce qui se passe dans les différentes fonctions utilisées''.
 +
 
 +
=== L'éditeur ===
 +
L'éditeur est également affiché (#2). Vous pouvez éditer votre fichier à tout moment. Lorsque vous faites des modifications dans votre fichier, vous devrez cliquer le lien "Save/Restart" (''sauver et redémarrer'') dans la barre d'outils pour que le débogueur prenne ces changements en compte.
 +
 
 +
La ligne rouge dans l'éditeur (#5) se déplace à chaque pas ("step") de votre programme. Elle indique la prochaine ligne qui sera exécutée.
 +
 
 +
Durant le debogage, WebIDE fait en sorte que cette ligne rouge reste centrée dans la zone visible de l'éditeur. Ne soyez donc pas étonné de voir votre codé défiler lorsque vous exécutez un "pas" dans votre programme.
 +
 
 +
=== Les volets de débogage ===
  
après avoir cliqué sur le lien, la barre d'outils change pour une barre de débogage. Elle s'ouvrira en quelques secondes. l'éditeur s'affiche, et vous pouvez effectuer des changements dans votre code pendant le débogage.
+
Sur les deux volets du bas, vous y verrez "les sorties" produites durant le débogage (#3) et les différentes variables accessibles par le débogueur (#4).
 +
* La sortie débogage affiche les sorties ''stdout'' et ''stderr'' produites par votre programme produit.<br />Les instructions "print", par exemple, produisent du texte sur ''stdout''. Ce texte sera donc visible dans le volet (#3)..
 +
* Les variables de débogage affichent les valeurs réelles qui leurs sont assignées durant l'exécution. Ces valeurs sont donc rafraichies à chaque nouveau pas de débogage pour que le contenu reflète les opérations exécutées par votre programme.<br />Le contenu de cette section, et le nombre de variables visibles, dépends donc de la progression du programme.
  
Lorsque le débogueur est prêt, vous verrez ce qui suit :
+
=== La marge du débogueur ===
 +
A l'extrême gauche de l'éditeur (#6), nous avons une marge/espace vide sur la gauche affichant les numéros de ligne. Vous pouvez ajouter des points d'arrêt en cliquant dans la marge lorsque le débogueur est en état "Ready" ("Ready" signifie ''prêt'').
  
[[Fichier:Pi-WebIde-Debug-02.png]] [http://learn.adafruit.com/assets/3467  ]
+
Un point d'arrêt est utile dans de nombreuses situations comme lorsqu'une section est boguée dans un très long script. Au lieu d'exécuter tout le script pas-à-pas jusqu'au point problématique (ce qui est fastidieux et prendra un temps assez long), vous pouvez créer un point d'arrêt à l'endroit litigieux (un carré rouge apparaîtra dans la marge) et cliquez ensuite sur "Run". Le script s'exécutera jusqu'au point d'arrêt, la ligne rouge marquera l'arrêt, et attendra que vous instructions. Vous pourrez alors continuez votre exécution pas-à-pas dans la partie de code boguée.
  
Le débogueur effectue plus que simplement exécuter le programme, ou que d'utiliser le visualiseur.
+
=== L'état du débogueur ===
 +
Un dernier point à prendre en considération sont les "messages d'état de débogage" (#7).  
  
La première chose que vous remarquerez est que la barre d'outils (#1) dispose de nouveaux boutons :
+
Ceux-ci indique ce que fait le débogueur.
  
# Save/Restart permettent de sauvegarder votre fichier, et redémarrer le débogueur en un seul clic. Vous pouvez aussi démarrer en pressant "control-s", ou "command-s" (sous OS X).
+
Par exemple, quand il se charge au démarrage, ou lorsque vous cliquez "Save/Restart" (sauver/redémarrer), le débogueur sera dans l'état "Initializing..." (signifiant ''initialisation...'' en français).  
# Le lien Exit permettra de sortir du débogueur.
 
# Le lien Run lance l'exécution de votre programme soit jusqu'à la fin, soit jusqu'au prochain point d'arrêt que vous avez activé. si il existe un point d'arrêt actif (en cliquant dans la "gouttière" (#6)), il stoppera ici, et attendra vos instructions.
 
# Pas-à-pas fera progresser l'exécution de votre programme, ligne par ligne  jusqu'à la fin. Cette option ignore tous les appels de fonction. donc, si vous avez une fonction appelée foo(), il exécutera la fonction entière, et passera à la prochaine ligne.
 
# Il passera bien pas après pas dans votre programme, mais il passera au-dessus des fonctions, au lieu de les exécuter pas-à-pas.  
 
  
L'éditeur est également affiché (#2). Vous pouvez éditer votre fichier à tout moment. Si vous faites des changements à votre fichier, vous devrez cliquer le lien "Save/Restart" dans la barre d'outils pour que le débogueur prenne en compte ces changements.
+
Lorsqu'il sera prêt à accepter vos commandes, il sera en état "Ready" (''Prêt''). Certaines parties de votre script feront apparaitre le débogueur comme bloqué, mais en réalité, ce dernier attend simplement une réponse de votre  script. Cet état peut, par exemple, être causé par une commande sleep() de longue durée.  
  
Sur les deux panneaux du bas, vous y verrez la sortie de débogage (#3), et les Variables de débogage (#4). la sortie débogage affiche les sorties stdout or stderr que votre programme génère (comme les états d'impression). les variables débogage affichent les valeurs réelles qui leurs sont assignées.
 
  
La ligne rouge dans l'éditeur (#5) se déplace à chaque pas de votre programme. C'est la prochaine ligne qui sera exécutée, et qui restera centrée dans la fenêtre de l'éditeur pendant la progression du programme.
+
== Cas pratique ==
  
A l'extrême gauche de l'éditeur (#6), nous avons un espace vide à gauche des numéros de ligne. Cet espace est appelé la "gouttière". Si vous cliquez dans la gouttière lorsque le débogueur est en état "Ready", vous pouvez ajouter des points d'arrêt. Un point d'arrêt est utile dans de nombreuses situations, comme lorsque vous avez un long script, et qu'il y a un problème dans une section boguée. Au lieu d'exécuter lentement pas-à-pas votre programme, vous pouvez créer un point d'arrêt (un carré rouge apparaîtra dans la gouttière), ensuit cliquez sur "Run". Le script s'exécutera jusqu'au point d'arrêt, la ligne rouge marquera l'arrêt, et attendra que vous continuiez l'exécution.
+
[[Fichier:Pi-WebIde-Debug-03.png]]
  
La dernière option à prendre en compte est les messages d'état de débogage (#7). Ceux-ci vous indiqueront la progression du débogueur. Par exemple, quand il charge au démarrage, ou lorsque vous cliquez "Save/Restart", il sera dans un état d'"initialisation...". Lorsqu'il sera prêt à accepter vos entrées, il sera "Ready". Certaines parties de votre script le feront apparaître bloqué, mais en réalité, il attend une réponse du serveur à votre  script (une commande sleep() de longue durée peut causer cet état, par exemple).  
+
Dans la capture d'écran ci-dessus, vous pouvez voir à quoi ressemble le débogueur pendant l'exécution d'un programme.
  
[[Fichier:Pi-WebIde-Debug-03.png]] [http://learn.adafruit.com/assets/3468  ]
+
Le débogueur est actuelle en attente d'instruction (état "Ready") un pas après que le point d'arrêt situé sur la ligne 13. Vous pouvez voir le message ''Bonjour, World'' résultat de l'instruction 'print "Bonjour, World"' exécuté à la ligne 10 (avant le point d'arrêt).  
  
Dans la capture d'écran ci-dessus, vous pouvez voir à quoi ressemble le débogueur pendant l'exécution d'un programme. Le débogueur est un pas avant le point d'arrêt imposé à la ligne 13 du code. Vous pouvez voir 'print "Bonjour, World"' dans la sortie débogage, et les valeurs des variables au moment de l'exécution du programme.
+
Les valeurs des variables sont également visibles dans le visualiseur (ces valeurs correspondent à l'état d'exécution actuel du programme... donc à l'exécution de la ligne 13 inclus... la ligne 14 n'étant pas encore exécutée).
  
A ce point du cycle de débogage, vous pouvez éditer votre fichier, et "Save/Restart". Vous pouvez continuer le parcourt pas-à-pas du programme, ou quitter le débogueur.
+
A ce point du cycle de débogage, vous pouvez:
 +
# Editer le contenu de votre script puis exécuter un "Save/Restart" (''Sauver/redémarrer'').
 +
# Continuer l'exécution pas-à-pas du programme avec "Step Over" (ou "Step In")
 +
# Continuer l'exécution du programme jusqu'à la fin (ou prochain point d'arrêt) avec "Run" (''exécuter'').
 +
# Quitter et interrompre le débogage avec "Exit" (''sortir/quitter'').
  
 
{{Pi-WebIde-TRAILER}}
 
{{Pi-WebIde-TRAILER}}

Version actuelle datée du 11 août 2013 à 11:10


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Introduction

Le débogueur python du WebIDE peut être utile dans de nombreuses situations.

Le débogueur vous permet d'exécuter votre programme Python pas-à-pas en temps réel. Ce qui contraste avec le visualiseur, qui exécute le programme dans son entièreté, et vous permet ensuite d'en parcourir le contenu.

Quand utiliser le débogueur?

Parmi les scénario, il y a le cas de la fonction qui ne retourne pas les résultats/valeurs escomptées, ou une variable qui ne semble pas contenir la valeur attendue.

Dans ces cas de figure, vous pouvez lancer le débugeur et placer des points d'arrêt ("breakpoint" en anglais) où vous pensez que le code pose problème et voir quelles sont les valeurs à un moment donné de l'exécution de votre programme.

Vous pouvez également utiliser les broches du GPIO pour allumer différentes LEDs. Vous les verrez s'allumer et s'éteindre au fur et à mesure de l'exécution pas-à-pas de votre programme.

Utiliser le debuggeur

Pour utiliser le débogueur, ouvrez un fichier python, et cliquez sur "Debug" dans la "barre d'outils" :

Pi-WebIde-Debug-01.png

après avoir cliqué sur le lien, la barre d'outils change pour afficher les options débogage dans la barre. Cette modification intervient en quelques secondes.

L'éditeur s'affiche, et vous pouvez effectuer des modifications dans votre code pendant le débogage.

Lorsque le débogueur est prêt, vous verrez un écran comme celui qui suit :

Pi-WebIde-Debug-02.png

Le débogueur réalise plus de choses que simplement exécuter le programme (également plus que l'utilisation visualiseur).

La barre d'outils

La première chose que vous remarquerez c'est les nouveau boutons qui apparaissent dans la la barre d'outils (#1):

  • Save/Restart: (sauver et redémarrer) permettent de sauvegarder vos modifications dans le fichier et de redémarrer le débogueur en un seul clic. Vous pouvez aussi opter pour le raccourci clavier "control-s", ou "command-s" (sous OS X).
  • Exit: (sortir) ce lien permettra de sortir du débogueur.
  • Run: (exécuter ce lien poursuit l'exécution de votre programme soit jusqu'à la fin, soit jusqu'au prochain point d'arrêt
    . S'il existe un point d'arrêt actif (activé en cliquant dans la marge (#6)), le débogueur stoppera le programme dessus et attendra vos instructions.
  • Step Over: (pas-à-pas) fera progresser l'exécution de votre programme d'une ligne puis le débogueur attend vos instructions. Le mode pas-à-pas permet donc d'exécuter un programme ligne par ligne jusqu'à la fin.
    La fonction "Step-Over" (pas au dessus en traduction littérale) ignore le détail d'exécution des fonctions appelées. Donc, si vous avez une fonction foo() appelée par votre programme, le débogueur exécutera la fonction en une seule opération et passera à la ligne suivante de votre programme.
    C'est un mode de débogage pratique si vous ne voulez pas savoir ce qui se passe dans les différentes fonctions utilisées..
  • Step in: (pas dedans en traduction littérale). C'est aussi une exécution pas-à-pas comme décrit ci-dessus mais lorsque le débogueur rencontrera un appel de fonction, il sautera dans la définition de la fonction où vous pourrez continuer l'exécution pas à pas.
    Une fois le débogage de la fonction terminée, le débogueur vous replacera tout seul au point d'appel de cette dernière où vous pourrez poursuivre le débogage pas-à-pas.
    C'est un mode de débogage pratique si vous voulez savoir ce qui se passe dans les différentes fonctions utilisées.

L'éditeur

L'éditeur est également affiché (#2). Vous pouvez éditer votre fichier à tout moment. Lorsque vous faites des modifications dans votre fichier, vous devrez cliquer le lien "Save/Restart" (sauver et redémarrer) dans la barre d'outils pour que le débogueur prenne ces changements en compte.

La ligne rouge dans l'éditeur (#5) se déplace à chaque pas ("step") de votre programme. Elle indique la prochaine ligne qui sera exécutée.

Durant le debogage, WebIDE fait en sorte que cette ligne rouge reste centrée dans la zone visible de l'éditeur. Ne soyez donc pas étonné de voir votre codé défiler lorsque vous exécutez un "pas" dans votre programme.

Les volets de débogage

Sur les deux volets du bas, vous y verrez "les sorties" produites durant le débogage (#3) et les différentes variables accessibles par le débogueur (#4).

  • La sortie débogage affiche les sorties stdout et stderr produites par votre programme produit.
    Les instructions "print", par exemple, produisent du texte sur stdout. Ce texte sera donc visible dans le volet (#3)..
  • Les variables de débogage affichent les valeurs réelles qui leurs sont assignées durant l'exécution. Ces valeurs sont donc rafraichies à chaque nouveau pas de débogage pour que le contenu reflète les opérations exécutées par votre programme.
    Le contenu de cette section, et le nombre de variables visibles, dépends donc de la progression du programme.

La marge du débogueur

A l'extrême gauche de l'éditeur (#6), nous avons une marge/espace vide sur la gauche affichant les numéros de ligne. Vous pouvez ajouter des points d'arrêt en cliquant dans la marge lorsque le débogueur est en état "Ready" ("Ready" signifie prêt).

Un point d'arrêt est utile dans de nombreuses situations comme lorsqu'une section est boguée dans un très long script. Au lieu d'exécuter tout le script pas-à-pas jusqu'au point problématique (ce qui est fastidieux et prendra un temps assez long), vous pouvez créer un point d'arrêt à l'endroit litigieux (un carré rouge apparaîtra dans la marge) et cliquez ensuite sur "Run". Le script s'exécutera jusqu'au point d'arrêt, la ligne rouge marquera l'arrêt, et attendra que vous instructions. Vous pourrez alors continuez votre exécution pas-à-pas dans la partie de code boguée.

L'état du débogueur

Un dernier point à prendre en considération sont les "messages d'état de débogage" (#7).

Ceux-ci indique ce que fait le débogueur.

Par exemple, quand il se charge au démarrage, ou lorsque vous cliquez "Save/Restart" (sauver/redémarrer), le débogueur sera dans l'état "Initializing..." (signifiant initialisation... en français).

Lorsqu'il sera prêt à accepter vos commandes, il sera en état "Ready" (Prêt). Certaines parties de votre script feront apparaitre le débogueur comme bloqué, mais en réalité, ce dernier attend simplement une réponse de votre script. Cet état peut, par exemple, être causé par une commande sleep() de longue durée.


Cas pratique

Pi-WebIde-Debug-03.png

Dans la capture d'écran ci-dessus, vous pouvez voir à quoi ressemble le débogueur pendant l'exécution d'un programme.

Le débogueur est actuelle en attente d'instruction (état "Ready") un pas après que le point d'arrêt situé sur la ligne 13. Vous pouvez voir le message Bonjour, World résultat de l'instruction 'print "Bonjour, World"' exécuté à la ligne 10 (avant le point d'arrêt).

Les valeurs des variables sont également visibles dans le visualiseur (ces valeurs correspondent à l'état d'exécution actuel du programme... donc à l'exécution de la ligne 13 inclus... la ligne 14 n'étant pas encore exécutée).

A ce point du cycle de débogage, vous pouvez:

  1. Editer le contenu de votre script puis exécuter un "Save/Restart" (Sauver/redémarrer).
  2. Continuer l'exécution pas-à-pas du programme avec "Step Over" (ou "Step In")
  3. Continuer l'exécution du programme jusqu'à la fin (ou prochain point d'arrêt) avec "Run" (exécuter).
  4. Quitter et interrompre le débogage avec "Exit" (sortir/quitter).

Source: [1]

Réalisé avec l'aide de Mr Carette J. à qui nous remettons tous nos remerciements.

Tutoriel créé par Tyler Cooper pour AdaFruit Industries. Tutorial created by Tyler Cooper for AdaFruit Industries.

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.

Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com