Hardcore Debugging
Sometimes, your app crashes. Sh*t happens. Usually this is annoying, but straightforward to fix. Maybe you messed up the lifetime of a reference, or perhaps there was some subtle race condition you didn’t consider. But there’s a class of crash far more insidious. Crashes which originate deep in the kernel memory management system, where the debugger refuses to narc on the culprit. This crash trace yields sparse detail:
Lady Luck is smiling on us: mercifully, the crash is 100% reproducible. Unfortunately, it lies on a core user flow and slipped through to production. We need to pull out our advanced tools. In a pinch, there are a couple of techniques to help pinpoint the source of the crash:
Today’s blog applies these advanced approaches to solve a real-life mystery crash.
Continue reading this post for free in the Substack app |