What problem does it solve?
iOS memory bugs are hard to prove: leaks can report zero while memory keeps growing, and aggregate metrics like RSS or graph size do not identify the responsible ownership path. This Skill provides a rigorous workflow for capturing .memgraph files from a Simulator app, separating unreachable leaks from reachable-but-abandoned growth, and verifying that a fix actually removes the app-owned ownership path.
Core Features & Use Cases
- Unambiguous Simulator Capture: A helper script resolves exactly one booted Simulator and one exact process by bundle ID, captures a .memgraph via
leaks --outputGraph, and preserves raw stdout/stderr plus a JSON manifest.
- Bounded Evidence Summaries: A second script runs
leaks --list, optional --traceTree, --groupByType, and --referenceTree queries, preserving raw output while emitting a conservative JSON summary with app-image matching.
- Reachable-Growth Workflow: A reference guide covers the empty-leak branch using matched baseline/post-flow graphs with
vmmap, heap --diffFrom, heap --addresses, and malloc_history under Malloc Stack Logging.
- Use Case: An EditorViewModel keeps surviving after the editor is dismissed. Capture baseline and post-dismissal graphs, trace the app-owned strong edge retaining it, apply one ownership fix, then repeat the identical flow to prove the same type and path disappear.
Quick Start
Ask the agent to capture a memgraph of your running Simulator app by bundle ID and analyze it for the ownership path retaining a specific object that should have been released.