gitmyhub

crashdx

Swift ★ 7 updated 10d ago

A deterministic crash diagnosis engine for .ips reports (CLI + MCP server)

A tool for Apple developers that analyzes iOS and macOS crash report files and provides a ranked list of likely root causes with supporting evidence, not just the line of code that failed.

SwiftMCPsetup: moderatecomplexity 3/5

crashdx is a tool for Apple platform developers that reads crash report files and figures out why an app crashed, not just where it crashed. When an iOS or macOS app crashes, the system produces a file called an .ips report. Standard tools tell you which line of code was running when the crash happened. crashdx goes further: it applies a set of rules to the report data and produces a ranked list of likely causes, each backed by specific evidence from the file.

The tool ships in three forms. There is a Swift library called CrashDXCore that other programs can build on, a command line tool called crashdx for running analyses directly, and an MCP server called crashdx-mcp that lets AI agents and automation systems call the same engine. All three use the same underlying logic, so a human running the command line tool and an automated pipeline get identical results.

Two design choices stand out. First, every claim the engine makes can be traced back to the exact spot in the crash report that supports it. The tool does not ask you to trust its conclusions blindly. Second, when the evidence is ambiguous, it says so. Rather than forcing a single answer, it presents the competing possibilities, scores them, and explains what additional information would settle the question. The engine contains no machine learning or AI calls. It works through deterministic rules applied to verifiable facts.

The README includes several real output examples. In one, the tool diagnoses an uncaught Objective-C exception by identifying specific frames in the stack trace that are telltale signs of that problem. In another, the tool returns an inconclusive verdict with two competing hypotheses for a memory access crash, suggesting specific debugging steps to distinguish between them. It also shows diagnoses for watchdog timeouts, memory pressure kills, stack overflows, and Swift runtime traps, each with its own evidence summary.

The tool can output results as JSON for use in automated testing pipelines. The full README is longer than what was shown.

Where it fits