Ce que fait l’outil
Collez la sortie de exception.ToString() : l’outil la découpe en une carte par exception, à savoir l’exception externe, chaque exception interne ---> et chaque entrée d’une AggregateException. L’exception la plus interne est marquée comme cause première, et la première frame appartenant à votre code comme origine probable.
Fonctionnalités
- Code async démystifié :
<GetOrderAsync>d__5.MoveNext()devientasync OrderService.GetOrderAsync(),<>c__DisplayClass0_0.<Main>b__0devient une lambda nommée et les fonctions locales retrouvent leur vrai nom. Les framesTaskAwaiter,ExecutionContextetExceptionDispatchInfoainsi que les marqueurs--- End of stack trace from previous location ---sont masqués. Survolez une frame pour voir le texte d’origine. - Uniquement mon code : les suites de frames du framework sont repliées en groupes dépliables « n frames du framework ». La liste des préfixes (
System.,Microsoft.,Npgsql.…) est modifiable. - Accepte les entrées désordonnées : sorties Serilog et Microsoft.Extensions.Logging, lignes de log CLEF / JSON (
@x), JSON d’exception d’Application Insights, traces avec des\r\néchappés, texte de la developer exception page d’ASP.NET Core, formats .NET Framework et Mono. - Fichier et ligne pour chaque frame. Cliquez pour copier
path:line. - Exportez la trace nettoyée en texte ou en Markdown prêt pour une issue GitHub ou Azure DevOps.
Mode d’emploi
- Collez l’exception, ou ouvrez ou déposez un fichier de log.
- Lisez d’abord la frame d’origine mise en évidence, puis dépliez les frames du framework seulement si nécessaire.
- Copiez le texte nettoyé ou le Markdown dans votre ticket.
Confidentialité
L’analyse se fait dans votre navigateur et rien n’est envoyé. Votre dernière saisie et la liste des préfixes sont conservées dans le stockage local ; Effacer supprime la saisie.