.NET-Stacktrace-Bereiniger

Aus einer Textwand von Exceptions die Ursache und die Zeile in Ihrem Code machen, die sie ausgelöst hat.

Läuft lokal · keine Uploads
Exception text
Framework prefixes for "Only my code"

Comma or space separated. Frames whose full name starts with one of these count as framework code. Add your own shared libraries if you want them folded too.

Was das Tool macht

Fügen Sie die Ausgabe von exception.ToString() ein, und das Tool teilt sie in eine Karte pro Exception auf: die äußere Exception, jede innere Exception nach ---> und jeden Eintrag einer AggregateException. Die innerste Exception wird als Ursache markiert, der erste Frame aus Ihrem eigenen Code als wahrscheinlicher Ursprung.

Funktionen

  • Entwirrter async-Code: Aus <GetOrderAsync>d__5.MoveNext() wird async OrderService.GetOrderAsync(), aus <>c__DisplayClass0_0.<Main>b__0 ein benanntes Lambda, und lokale Funktionen erhalten ihren echten Namen. Frames von TaskAwaiter, ExecutionContext und ExceptionDispatchInfo sowie die Markierungen --- End of stack trace from previous location --- werden ausgeblendet. Fahren Sie mit der Maus über einen Frame, um den Originaltext zu sehen.
  • Nur mein Code: Folgen von Framework-Frames werden zu aufklappbaren Gruppen „n Framework-Frames“ zusammengefasst. Die Präfixliste (System., Microsoft., Npgsql.…) ist bearbeitbar.
  • Verträgt unsaubere Eingaben: Ausgaben von Serilog und Microsoft.Extensions.Logging, CLEF-/JSON-Logzeilen (@x), Exception-JSON von Application Insights, Traces mit maskiertem \r\n, Text der ASP.NET Core Developer Exception Page sowie die Formate von .NET Framework und Mono.
  • Datei und Zeile für jeden Frame. Ein Klick kopiert path:line.
  • Exportieren Sie den bereinigten Trace als Text oder als Markdown, fertig für ein GitHub- oder Azure-DevOps-Issue.

So verwenden Sie es

  1. Fügen Sie die Exception ein oder öffnen bzw. ziehen Sie eine Logdatei hinein.
  2. Lesen Sie zuerst den hervorgehobenen Ursprungs-Frame und klappen Sie Framework-Frames nur bei Bedarf auf.
  3. Kopieren Sie den bereinigten Text oder das Markdown in Ihr Ticket.

Datenschutz

Das Parsen findet in Ihrem Browser statt, nichts wird hochgeladen. Ihre letzte Eingabe und die Präfixliste werden im lokalen Speicher gehalten; Leeren entfernt die Eingabe.