JeuWeb - Crée ton jeu par navigateur
Obtenir la stack lors d'une erreur JS? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Obtenir la stack lors d'une erreur JS? (/showthread.php?tid=225)

Pages : 1 2 3


Obtenir la stack lors d'une erreur JS? - Argorate - 04-06-2013

Bonjour,

j'aimerais bien avoir des outils comme sur la plus part des autres langage concernant le fait d'obtenir la pile d’exécution en cas d'erreur, ici, dans le cadre du javascript.

En recherchant un peu sur google on tombe sur des bout de code (de ce genre: http://www.devkb.org/javascript/109-getStackTrace-en-JavaScript-pour-recuperer-la-pile-des-appels-de-fonctions) qui semble prometteur, le problème c'est qu'il ne fonctionne que dans un try catch, hors outre le fait que ça soit un peu moche d'englober tout son JS dans un try catch, c'est tout simplement impossible quand on divise ces codes sur plusieurs fichiers.

Quelqu'un a t-il une solution ou une idée de cmt obtenir ça proprement?


merci.


RE: Obtenir la stack lors d'une erreur JS? - Xenos - 04-06-2013

Si tu parles de javascript coté client (sur navigateur, pas sur serveur), firebug propose cette fonctionnalité. C'est un plug-in mozilla, mais je suis presque surpris si tu ne l'as pas déjà O.o
Dans ce plug-in, la touche F12 permet de faire apparaitre des panneaux de contrôles, parmis lesquels la console. En cas d'erreur, le stack est donné: tu as la liste de la pile d'appel qui a menée à l'erreur.

Du coup, firebug donnant le stack, je ne vois pas l'utilité de le récupérer dans le javascript.
Le stack est donné dans la console quand la commande "console.error()" est appelée.


RE: Obtenir la stack lors d'une erreur JS? - niahoo - 05-06-2013

y a ça : http://web.archive.org/web/20100813232637/http://blog.yoursway.com/2009/07/3-painful-ways-to-obtain-stack-trace-in.html


RE: Obtenir la stack lors d'une erreur JS? - Argorate - 05-06-2013

Xenos j'utilise firebug depuis longtemps et cette fonctionnalité n'est pas présente (ou pas par défaut) donc je veux bien la procédure pour l'activer.

En cas d'erreur, firebug affiche une ligne rouge qui montre la ligne où ça bug avec le string de l'erreur et la ligne de l'erreur, absolument pas la pille qui dit par où est passé le script avant de buger...


RE: Obtenir la stack lors d'une erreur JS? - Xenos - 05-06-2013

Je n'ai rien activé me semble-t-il, à part "activer tous les panneaux", c'est à dire ouvrir la console firebug.
Le résultat est le suivant chez moi. Le stack est bien affiché. Il ne l'est que pour les erreurs (console.error()), pas pour les warning (console.warn), les logs (console.info) ou les logs (console.log).


RE: Obtenir la stack lors d'une erreur JS? - niahoo - 05-06-2013

clique sur l'erreur rouge pour avoir le détail de la stack, y a une petite fleche normalement


RE: Obtenir la stack lors d'une erreur JS? - Maks - 05-06-2013

http://www.eclerd.fr/Deviant/firebug-stack-trace.png

appeler des fonctions avant qu'elles soient déclarées en profitant du "hoisting" bouh


RE: Obtenir la stack lors d'une erreur JS? - Xenos - 06-06-2013

M'en f**s, c'est un code qui doit provoquer une erreur, alors, c'est cohérent, na :p
(mais chuut, t'as raison :ish: )


RE: Obtenir la stack lors d'une erreur JS? - niahoo - 06-06-2013

[edit: j'avais mal vu, sagouin]


RE: Obtenir la stack lors d'une erreur JS? - Argorate - 06-06-2013

Peut etre parce que tu utilises un try catch, mais en l’occurrence j'ai une erreur dans ma console et il n'y a pas de "+" qui permet de détailler...

j'ai juste "typeError: maVariable is null" et ça pointe la ligne, mais pas les appels qui précède...