Formatage de traces de pile JavaScript

Collez des traces de pile JavaScript pour examiner les fonctions, fichiers, lignes et colonnes. Les erreurs récurrentes sont regroupées selon la signature de leur trace.

Fonctionne localement dans votre navigateur
Tout dans cet outil est traité dans ce navigateur. KivTools ne télécharge pas, ne stocke pas et n’appelle aucune API tierce avec votre entrée.
Traces de pile JavaScriptCollez des traces JavaScript au format Node.js/V8 ou Firefox/Safari. L’analyse se fait dans ce navigateur.

Comment mettre en forme une trace de pile

Collez une sortie d’erreur issue de Node.js, d’une console de navigateur ou d’un fichier de log. La page découpe le texte en traces, affiche chaque frame reconnu sous la forme fonction, fichier, ligne et colonne, puis regroupe les traces qui partagent les trois premiers frames.

La mise en forme s’exécute dans cet onglet. Rien n’est envoyé et aucune requête ne quitte la page pendant que vous travaillez.

  1. Collez une ou plusieurs traces dans Traces de pile JavaScript, ou cliquez sur Charger un exemple pour voir la forme attendue.
  2. Cliquez sur Mettre en forme les traces. Chaque trace devient un bloc numéroté et les frames s’écrivent at fonction (fichier:ligne:colonne).
  3. Lisez Groupes d’erreurs : les traces qui partagent les trois premiers frames sont comptées ensemble et la carte indique le frame supérieur du groupe.
  4. Copier ou Télécharger récupère le texte mis en forme ; Effacer vide l’entrée, la sortie et le rapport.
  5. Si le rapport compte des lignes non reconnues, elles restent dans la sortie telles qu’elles ont été collées.

Ce que montre la sortie mise en forme

En-têtes reconnus par l’analyseur

Une trace commence à la ligne qui nomme l’échec : TypeError: suivi d’un message, une enveloppe de console comme Uncaught (in promise) TypeError:, UnhandledPromiseRejectionWarning:, DOMException:, AggregateError:, ou tout identifiant terminé par Error, Exception, Warning ou Rejection. Une ligne qui commence par un horodatage et un niveau (2026-09-17T10:00:00Z ERROR TypeError: ...) ou par un niveau entre crochets ([error] TypeError: ...) compte aussi.

Un en-tête ouvre une nouvelle trace lorsque la ligne précédente était un frame ou qu’une ligne vide les sépare. Node écrit une erreur encapsulée sous la forme [cause]: Error: ... ; cette ligne devient sa propre trace pour que la cause garde ses frames.

Frames sans fichier

Les deux formes courantes sont lues : V8 et Node écrivent at fonction (fichier:ligne:colonne) ; Firefox et Safari écrivent fonction@fichier:ligne:colonne. Les chemins Windows comme C:\app\index.js:42:11 restent entiers, et les formes courtes at fichier:ligne:colonne et at fichier:ligne sont lues également.

Les frames sans emplacement ne sont pas supprimés : at foo (native), at Array.forEach (<anonymous>), at async Promise.all (index 0), at eval (eval at <anonymous> (file.js:1:1), <anonymous>:1:1). Les codes de couleur du terminal sont retirés, et une accolade finale des blocs cause de Node ne casse pas le frame de cette ligne.

Lignes qui ne font pas partie d’une trace

Un rappel d’exécution comme Node.js v20.11.0, la suite d’un message sur plusieurs lignes ou un avertissement de framework comme [Vue warn]: ... n’est pas un frame : la ligne reste inchangée sous sa trace et est comptée dans le rapport.

Les traces d’autres environnements ne sont pas lues comme leur propre format : un frame Java ou .NET peut correspondre par hasard parce qu’il ressemble à at nom (fichier:ligne), un traceback Python ne correspond en général pas, et dans tous les cas toutes les lignes restent dans la sortie.

Si le texte collé ne contient ni en-tête ni frame, la page le signale et renvoie le texte inchangé au lieu d’inventer un résultat.

Outils récents :