Chez oim, forum libre

Débattre => Informatique, programmation, geek attitude... => Discussion démarrée par: Songbird le vendredi 27 mai 2016, 01:03

Titre: Dart - Débogage avec l'observatoire (débogage d'application Dart non transpilée)
Posté par: Songbird le vendredi 27 mai 2016, 01:03
 :gp:

Comment déboguer une application Dart ?

Pour la chasse aux bugs, l'Observatoire sera votre meilleur allié.
Il permet de suivre étape par étape l'exécution de votre programme grâce à la mise en place de breakpoints, mais vous pourrez également tester vos classes en live en accédant à la hiérarchie des classes de votre projet.
Vous disposerez aussi de rapports plus ou moins détaillés des performances de votre programme, de sa consommation mémoire, processeur, des effets du garbage collector de la mémoire utilisée, et la taille de chaque génération. (old and young generation)

Pour visionner rapidement le résultat, créez un programme dart (disposant d'une fonction main), puis entrez la commande suivante dans votre shell:
Code
dart --observe yourDartProgram.dart

Vous obtiendrez alors un message de ce type:
Citation
vm-service: isolate 'Nox.dart$main' has no debugger attached and is paused at start.  Connect to Observatory at http://127.0.0.1:8181 to debug.
Il vous invite donc à renseigner l'adresse http://127.0.0.1:8181 dans votre navigateur pour accéder à l'interface de l'Observatoire ainsi qu'aux outils qui le composent.
Pour le message précédé par "vm-service", aucun problème. Il vous informe juste que vous n'avez appelé aucun débogueur dans votre code, ce qui vous empêche donc de visionner le comportement de votre méthode main.
Pour y remédier, il vous suffit d'entrer le flag --pause-isolates-on-start avec votre commande:
Code
dart --observe --pause-isolates-on-start Nox.dart 
Le débogueur s'arrêtera alors avant l'appel de la fonction main, vous permettant de vous tenir au courant de ce qu'il se passe là-dedans.

Lorsque vous êtes connectés, vous vous retrouverez dans ce chemin: http://127.0.0.1:8181/#/vm.
A côté du graphique en camembert, vous apercevrez une liste de liens et vous rendrez donc sur See debugger, et c'est ici que vous pourrez passer des instructions au débogueur pour visionner l'exécution de votre programme, voici un exemple:
(https://chez-oim.org/uploads/member_246/1464303505.png)

Les breakpoints s'exécute en direct devant vos yeux, permettant ainsi une résolution des bugs plus rapides.
(pour passer les breakpoints, il suffit de taper "c" pour passer au suivant)

Documentation de l'Observatoire (https://dart-lang.github.io/observatory/get-started.html). (anglaise)
Titre: Dart - Débogage avec l'observatoire (débogage d'application Dart non transpilée)
Posté par: alex le vendredi 27 mai 2016, 11:52
J'imagine que c'est le debugger qui place les breakpoints.
On peut en ajouter ou en retirer ?
Titre: Dart - Débogage avec l'observatoire (débogage d'application Dart non transpilée)
Posté par: Songe le vendredi 27 mai 2016, 18:42
Çà veux dire quoi transpillée ?  :iz:
Titre: Dart - Débogage avec l'observatoire (débogage d'application Dart non transpilée)
Posté par: alex le vendredi 27 mai 2016, 18:50
Transpiler, c'est passer d'un langage à un autre.
Enfin, c'est plutôt une conversion d'un langage vers un autre. Un programme en langage X sera transpilé en un langage Y.

Par exemple, dans ce topic on parle du langage Dart.
Dart n'est pas utilisable directement par ton navigateur. On va donc le transpiler en langage JavaScript que ton navigateur connait très bien.

C'est presque pareil que "compiler" sauf que la compilation transpile toujours un langage X en langage machine (ou pseudo langage machine).

C'est bon ? T'as compris ? :gf:
Titre: Dart - Débogage avec l'observatoire (débogage d'application Dart non transpilée)
Posté par: Songbird le vendredi 27 mai 2016, 19:20
Citation
J'imagine que c'est le debugger qui place les breakpoints.
On peut en ajouter ou en retirer ?
Oui bien sûr ! :)
Quand tu tapes la commande h, tu as toutes les commandes supportées par le débogueur.
Titre: Dart - Débogage avec l'observatoire (débogage d'application Dart non transpilée)
Posté par: alex le vendredi 27 mai 2016, 19:58
Ah bon, c'est bien ce qu'il me semblait aussi. :)
Titre: Dart - Débogage avec l'observatoire (débogage d'application Dart non transpilée)
Posté par: Songe le vendredi 27 mai 2016, 20:41
J'ai comprit le principe même si demain j'aurai probablement oublier . :gf:
Titre: Dart - Débogage avec l'observatoire (débogage d'application Dart non transpilée)
Posté par: alex le vendredi 27 mai 2016, 20:51
Tu repasseras ici pour relire. ;)

Sinon, au pire, tu redemandes. :iq: