What it does
Paste the output of exception.ToString() and the tool splits it into one card per exception: the outer exception, every ---> inner exception and each entry of an AggregateException. The innermost exception is marked as the root cause, and the first frame that belongs to your code is marked as the likely origin.
Features
- Demystified async code:
<GetOrderAsync>d__5.MoveNext()becomesasync OrderService.GetOrderAsync(),<>c__DisplayClass0_0.<Main>b__0becomes a named lambda, local functions get their real name.TaskAwaiter,ExecutionContext,ExceptionDispatchInfoframes and the--- End of stack trace from previous location ---markers are hidden. Hover a frame to see the original text. - Only my code: runs of framework frames fold into “n framework frames” expanders. The prefix list (
System.,Microsoft.,Npgsql.…) is editable. - Accepts messy input: Serilog and Microsoft.Extensions.Logging output, CLEF / JSON log lines (
@x), Application Insights exception JSON, traces with escaped\r\n, ASP.NET Core developer exception page text, .NET Framework and Mono formats. - File and line for each frame. Click it to copy
path:line. - Export the cleaned trace as text or as Markdown ready for a GitHub or Azure DevOps issue.
How to use it
- Paste the exception, or open or drop a log file.
- Read the highlighted origin frame first, then expand framework frames only if you need them.
- Copy the cleaned text or Markdown into your ticket.
Privacy
Parsing happens in your browser and nothing is uploaded. Your last input and prefix list are kept in local storage; Clear removes the input.