dimanche 16 octobre 2011

Node.js et le mode debug

Grace à firebug, il est aisé de faire des opérations de mise au point sur des scripts exécutés du coté client.
Ce système n'est pas utilisable sur des programmes  lancés coté serveur sur node.js . Il est fort heureusement possible de lancer un script en mode debug sur node.js.
Pour cela il suffit d'ajouter l'option suivante au lancement d'un script:
nodejs --debug-brk monscript.js


l'option --debug-brk provoque l’arrêt du script sur sa première instruction. Node vous retourne une adresse de connexion pour accéder aux  informations de debug

debugger listening on port 5858

Il est possible alors d'opter pour deux types d'outils. 

Le debug dans un terminal.

Pour cela, ouvrir un deuxième terminal et lancer la commande ndb. Cette commande est un module pour node qui s'installe par la commande npm install ndb

L'ecran ressemble à ceci 




Les commandes disponibles pour le debug sont celles qu'on retrouve sur des produits analogues (perl debug, ruby debug ) mais avec quelques limitations.
La commande 'l' ne permet pas de lister tout un programme.

Le debug dans un navigateur

Au lieu de lancer ndb, il est possible d'utiliser node-inspector. Ce programme se lance comme ndb  mais il retourne une url. cette url est à saisir dans un navigateur (si possible chrome) afin d'obtenir l'écran suivant:


Ce produit est très intéressant car en plus de la mise au point , il permet de faire de l’introspection sur le librairies au coeur de node.  Une liste déroulante propose de debugger votre script mais aussi de faire du pas à pas sur node lui-même.
Node_inspector est un module node, il s'installe donc par la commande npm install node-inspector.
( tip: avec l'option -g ,  npm  installe les modules dans un répertoire partagé ex: /usr/local et non pas dans le répertoire utilisateur) 




Aucun commentaire: