Analyze a Stack Trace and Find the Root Cause

Paste a stack trace from any of 8 languages and get the root cause, the first frame of your own code, and every frame split into function, file, line, and column.

Try:
Analysis

About this tool

stack-trace-analyzer turns a pasted crash log into a readable map of what failed. It understands common stack trace formats from Java/Kotlin/Scala, Python, JavaScript/TypeScript/Node, Go, Ruby, C#/.NET, Rust, and PHP, then reports the detected language, the reported exception, the root cause at the end of the exception chain, and the first frame that looks like your own code.

Use it when a trace is long, nested, or mixed with framework calls. The analyzer normalizes frame order so the throw or panic site appears first by default, marks each frame as user or framework, and can hide framework frames entirely when you only want the code paths you control. If automatic classification is too broad, add comma-separated Your code prefixes such as com.example, /app/src, or my_service.

Worked example

Input:

Exception in thread "main" com.example.SvcException: could not start
    at com.example.App.start(App.java:42)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:301)
Caused by: java.net.ConnectException: Connection refused
    at java.base/sun.nio.ch.Net.pollConnect(Native Method)
    at com.example.Db.connect(Db.java:17)

Default report highlights:

Language: Java / Kotlin / Scala (auto-detected)
Reported: com.example.SvcException: could not start
Root cause: java.net.ConnectException: Connection refused
First user frame: com.example.Db.connect(Db.java:17)

Set Output to table for a Markdown frame table or json when you want a structured exception chain for another script. Enable Hide framework frames to drop standard-library, package-manager, runtime, and framework frames from the displayed output.

Options and limits

FAQ

Which stack trace formats does it parse?

It handles Java-style at Class.method(File.java:42) traces including Caused by, Python Traceback blocks, JavaScript/Node at function (file:line:col) traces, Go panics and goroutine frames, Ruby, C#/.NET, Rust panics/backtraces, and PHP fatal-error traces. Use the language selector when a very short snippet cannot be detected reliably.

How does it decide what is my code?

Without prefixes it uses language-specific framework rules such as Java java.*, Node node_modules and node:internal, Python site-packages, Ruby /gems/, Rust /rustc/, and .NET System.*. If you provide Your code prefixes, those prefixes become the rule: only matching function or file paths are marked as user code.

What is the root cause?

The root cause is the innermost exception in a chain: the last Caused by in Java, the original exception behind Python __cause__ / context text, the deepest inner exception in .NET-style traces, or the single reported exception when there is no chain.

Can it symbolicate minified JavaScript or native crash dumps?

No. It only analyzes the text you paste. Source maps, debug symbols, minidumps, JVM heap dumps, and IDE-specific symbolication are out of scope. If the trace already contains file names, line numbers, and functions, this tool will structure and classify them.

Is the trace uploaded anywhere?

No. The same Rust parser runs locally in the WebAssembly page and in the CLI. Your stack trace is processed in your browser or terminal.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool stack-trace-analyzer 'Exception in thread "main" com.example.SvcException: could not start
	at com.example.App.start(App.java:42)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:301)
Caused by: java.net.ConnectException: Connection refused
	at com.example.Db.connect(Db.java:17)'

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/stack-trace-analyzer/?trace=Exception%20in%20thread%20%22main%22%20com.example.SvcException%3A%20could%20not%20start%0A%09at%20com.example.App.start%28App.java%3A42%29%0A%09at%20org.springframework.boot.SpringApplication.run%28SpringApplication.java%3A301%29%0ACaused%20by%3A%20java.net.ConnectException%3A%20Connection%20refused%0A%09at%20com.example.Db.connect%28Db.java%3A17%29&language=auto&output=report&user_packages=com.example%2Cmyapp&hide_framework=true&reverse=true&limit=100

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.