Débogeur Javascript pour FireFox et Chrome
Débogeur Javascript
Le débogeur Javascript est un menu disponible dans tous les navigateurs modernes.
Il permet de chercher des bugs, erreurs de programmation, présents dans les scripts JS.
Le débugger, aussi appelé console de debug Javascript, permet d’arrêter l’exécution d’un script à une instruction donnée et d’observer en détail l’état de la mémoire :
- est ce que les variables / fonctions / objet / existent ?
- quel est le contenu des variable ainsi que le type du contenu ?
La console de debug permet, en plus, d’exécuter pas à pas (instruction par instruction) le code source et de voir en détail ce qui n’est pas conforme à la logique du programme : variable undefined alors qu’il faut une valeur, number attendu mais array donné etc …
Debugging et log
Il ne faut pas confondre la console de débuggage avec la console de log :
- ce sont tous les deux des outils de debuggage
- mais ils deux stratégies différentes pour répondre au même besoin :
- console de débuggage : mettre en pause le flux d’exécution du script et le parcourir pas à pas
- console de log : avoir un détail précis sur une variable particulière lorsque le code est exécutée à 100%
- ces deux outils sont complémentaires de la palette des outils de développement web
Les points d’arrêts
Les points d’arrêts, en anglais Breakpoints, est la fonction centrale du débuggeur javascript.
Il s’agit d’un marqueur ajouté par le développeur qui va permettre de :
- mettre en pause le flux d’exécution à une instruction
- observer l’état de la mémoire à cet instant d’exécution
Grâce à ce marqueur, le développeur va pouvoir se mettre dans la peau du navigateur est suivre l’ordre d’exécution du script et voir le comportement des variables / fonctions.
Console debug js FireFox
Pour accéder à la console trois possibilités :
Console debug js Chrome
Pour accéder à la console trois possibilités :
Exemple de petit script js à débugger
La suite de l’article utilise le script suivant. A insérer dans un fichier index.html
La Console debug js FireFox en détail pour les points d’arrêt
Nous allons nous concentrer sur la console de débug FireFox. Sachez que, pour Chrome, le mode de fonctionnement est très proche lorsque l’on utilise des breakpoints :
Détail sur le volet d’information
Ajouter un ou plusieurs point d’arrêt
Il existe deux méthodes pour ajouter un point d’arrêt :
- ajouter le mot clé
debugger;
dans le code source javascript - clique droit dans la numérotation du volet central > Ajouter un point d’arrêt
Le point d’arrêt s’ajoute dans le volet de droite dans la section point d’arrêt
Exécuter le script Pas à Pas
Après avoir ajouté un point d’arrêt, il faut recharger la page via un f5. Le navigateur va alors :
- afficher le script dans le panneau central. (Attention pour Firefox, il arrive qu’il faille cliquer sur le point d’arrêt et/ou arrêter le refresh de la page)
- exécuter le script jusqu’au point d’arrêt (ligne surlignée)
- remplir le panneau de droite
Pour faire défiler le code pas à pas, il faut utiliser les boutons situés en haut du panneau d’information :
A chaque clique sur un de ces boutons, le panneau d’information se met à jour permettant de voir de détail le contenu des variables, l’existance des fonctionset la liste des propriétés et méthodes des objets
Supprimer les points d’arrêt
Dans le panneau de droite, il suffit de cliqur sur la croix du point d’arrêt pour le supprimer définitivement
Conclusion
Le débogeur js est un outil très intéressant pour apprendre à programmer mais aussi pouvoir comprendre un script comportant de nombreuses lignes de codes.
Plus le code sera complexe (et non réalisé par vos soins), et plus ce menu va devenir indispensable car permet de décortiquer le code à un moment donné : contenu des variables grâce à la section portée des variables (scope), connaitre le contexte d’exécution, parcourir le contenu des fonctions …
Autres fonctionnalités du debogeur non vues dans l’article sur le web
- https://webdevpro.net/xampp-visual-studio-et-le-module-php-xdebug/
- Documentation officielle du menu de bug de firefox sur developer.mozilla.org
- Formater et indenter un fichier minifié
- point d’arret conditionnel sur developer.mozilla.org
- Utiliser une source map pour le coffee script