What was built
A high-throughput .NET 8 CLI tool that ingests raw game engine crash logs, strips volatile dynamic memory pointers and thread identifiers, normalizes call stack frames into canonical SHA-256 cluster signatures for deduplication, and applies deterministic heuristic rules to map stack frames to recent Git commit changes.
Synthetic data used
A suite of 50 synthetic crash logs spanning 6 common game engine failure archetypes: NodePath resolution breaks after scene reparenting, null physics body states during asynchronous raycasts, shader uniform buffer binding mismatches, cross-thread object disposal race conditions during scene unload, signal emissions to deleted UI elements, and navigation waypoint array index overflows.
What I was trying to learn
How cleanly pointer-stripped normalization clusters noisy engine crashes across repeated runs, and whether simple heuristic commit mapping (matching modified methods in recent commits to top-of-stack frames) can accurately isolate the introducing change in simulated regressions.
What I would want real data for
Real issue tracker dumps and crash reports from open-source game engines (such as Godot GitHub issues) to evaluate real-world stack trace noise, inlined compiler frames, multi-threaded inter-leaved logs, and complex multi-commit regressions.