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) |
RE: Obtenir la stack lors d'une erreur JS? - niahoo - 06-06-2013 même en faisant comme dans le lien que je t'ai donné ? RE: Obtenir la stack lors d'une erreur JS? - Xenos - 06-06-2013 Oui, pour un "typeError" ou une erreur de code, il n'y a pas de stack par défaut. Deux solutions: * Forcer l'affichage du stack Pour ce faire, clique sur la flèche à coté de "console" Puis coche "Afficher la pile d'appel avec les erreurs". Le stack apparait ! * Sinon, faire un try/catch avec un console.error dedans:
Et ainsi: Citation :(+) Erreur: ReferenceError: does is not definedEt le stack est donné. RE: Obtenir la stack lors d'une erreur JS? - Argorate - 07-06-2013 niahoo : j'ai eu du mal avec ton site tout en anglais, surtout s'il existe une solution simple déjà intégré à firebug. Donc c'est bien ce que je disais: c'est une option qui n'est pas présente par défaut (va savoir pourquoi...). J'ai coché la case mais il se trouve que j'ai réparer la dites erreur depuis, je verrais bien la prochaine fois. Mais je te crois sur parole, du coup c'est super, merci RE: Obtenir la stack lors d'une erreur JS? - Xenos - 07-06-2013 Y'a pas de quoi. C'est effectivement étrange, et je n'avait pas remarqué, avant que tu montres ton exemple, que le stack n'était affiché que pour les erreurs "manuelles" (console.error). En passant, les options de la console sont redoutables. C'est hallucinant de voir que les "grands sites", sérieux et avec normalement des équipes de dev (bien) payées (au moins, payées) sont truffés d'alertes javascript ou de bugs CSS... RE: Obtenir la stack lors d'une erreur JS? - niahoo - 07-06-2013 ben perso j'ai jamais touché aux options et les stacjks sont présentes tout le temps. Sinon le site que je donne permet d'avoir la stack en cas d'erreur mais aussi quand il n'y en a pas, ce qui est pas mal pour débugger X mille lignes de codes que l'on a pas fait soi-même. M'enfin si tu ne parles pas anglais c'est sur ça va pas t'aider. Ceci dit, je me demande comment tu te débrouilles avec la doc des API ... RE: Obtenir la stack lors d'une erreur JS? - Xenos - 07-06-2013 Citation : la stack en cas d'erreur mais aussi quand il n'y en a pasJe comprends pas. Firebug donne le stack d'ailleurs, mais aussi le fichier et la ligne, ça aide. RE: Obtenir la stack lors d'une erreur JS? - niahoo - 07-06-2013 bah tu veux tracer tous les appels d'une fonction, paf tu les as. RE: Obtenir la stack lors d'une erreur JS? - Xenos - 07-06-2013 Si tu veux le faire via Firebug, il te suffira d'ajouter:
Et, à chaque fois que la ligne est rencontrée, une erreur est affichée dans la console et te permet de pister tous les appels (il faut un texte je crois, sinon, y'a pas de stack).Le panneau "script" permet également de définir des points d'arrêts dans le script, c'est proche. Mais c'est vrai, je n'ai pas trouvé de fonction qui permettrait, via firebug, d'avoir la liste de toutes les autres fonctions pouvant appeler une fonction précise, voire toutes les piles d'appel pouvant mener à une fonction/ligne donnée (mais sur certains projets, ca me semble trop lourd, car il peut y avoir des récursion qui rendent infinie la liste des piles d'appel possibles). RE: Obtenir la stack lors d'une erreur JS? - niahoo - 07-06-2013 Oui avec firebug et sur opera c'est facile. C'est sur les autres browsers que c'est plus chiant, même si chrome file la stack sur les erreurs normalement. RE: Obtenir la stack lors d'une erreur JS? - Argorate - 07-06-2013 En fait ce n'est pas bon du tout^^ je viens de passer de longue minute pour rien à trouver un bug, et en fait je me rend compte que si je décoche l'affichage de la stack dans la console firebug, ça m'indique pas du tout la même ligne d'erreur ! Je comprenais pas le rapport entre l'erreur et la ligne qu'il montré, en fait il montrait pas du tout le bon endroit^^ Donc ça semble pas très bien fonctionner... niahoo tu peux m'expliquer en français vite fait la solution que ton lien propose? |