agents/skills/trace-analysis/SKILL.md
When analyzing traces for UI jank or blocked threads (e.g., monitor contention on main thread):
waker_utid and waker_id columns in the thread_state table
to find the hard waker thread that moved the target from a sleeping to a
runnable state.Sleeping or Blocked (and not Runnable), look at recorded
syscalls (such as SYS_futex) to understand what operation or system
lock it was waiting for. This adds context on what exact kernel blocker
stalled the thread.system_server or another process (like Play Store's com.android.vending),
find out what service or operation was being called or completed (e.g.
searching for unbindServiceLocked or onAppUpdateInfo in slice or args
table). Using waker_utid to locate the waking thread allows identifying the
exact operation handle on that waker thread, creating a causal chain across
processes instead of relying on luck or timing estimates.This approach avoids getting stuck in opaque library calls and allows tracking complete cross-process flows.