All posts
Post
Crashes that start at “thread 0” and end with “who owns this?” are avoidable. The fix is module-first debugging: tag signals with the module, keep dSYMs aligned, and scope the debugger so you’re stepping in the right place.
- Make modules observable: wrap
Logger/OSSignposterper module, include the module incategory, and add `` to log lines; gate verbose logs with a dynamic flag. - Fix symbolication: archive/upload matching dSYMs per build and use Xcode’s breakpoint “Module” filter instead of global regex traps.
- Encode contracts early: add
XCTestinvariants for IDs, error mapping, and actor/thread expectations; keep them cheap and per-package. - Route incidents by module: group
MetricKitcrashes by top frame, tag logs with module, and map to owners for targeted alerts. - Steer LLDB: prefer `expr