Quick answer: To diagnose a freeze: capture where the game hangs and what it was doing, identify the affected devices and conditions, and find the cause (often a blocked main thread or loop).
A freeze leaves the game unresponsive without a clean crash. These are the steps to diagnose one.
Step 1: Capture Where the Game Hangs
Start by capturing where the game hangs and what it was doing: a freeze is the game becoming unresponsive (not a clean crash), so you want to know the state it was in and the events leading up to the hang. Capturing what was happening when it froze is the key first step, since a freeze gives less to go on than a crash.
Bugnet helps via breadcrumbs and context: the trail of events leading up to the freeze (and any crash it eventually triggers, such as an ANR on mobile, where the OS kills an unresponsive app) shows what the game was doing when it hung, giving you the context to start diagnosing a freeze.
Step 2: Identify Affected Devices and Conditions
Next, identify which devices and conditions trigger the freeze: does it cluster on certain hardware (a performance or driver issue), or after specific actions or states? The conditions narrow down the cause, distinguishing, say, a performance-related freeze on low-end devices from a logic-related hang triggered by a specific action.
Bugnet shows the conditions: when a freeze manifests as an ANR or crash, Bugnet tags it with device and OS and groups occurrences by signature, so you see whether the freeze clusters on certain hardware or follows certain sequences, pointing toward a performance cause or a specific triggering condition.
Step 3: Find the Cause
Finally, find the cause: freezes commonly come from a blocked main thread (a long operation running on the thread that should stay responsive), an infinite loop, a deadlock, or severe performance degradation. Using the state and conditions you captured, identify which is happening so you can fix it (move work off the main thread, fix the loop, resolve the deadlock).
Bugnet supports finding the cause by showing what preceded the freeze: the breadcrumb sequence and conditions point to what the game was doing when it hung (loading, a heavy operation, a specific action), helping you identify whether it is a blocked main thread, a loop, or a performance issue, and verify per version once you fix it.
To diagnose a freeze: capture where the game hangs and what it was doing, identify the affected devices and conditions, and find the cause (often a blocked main thread, loop, or deadlock), a freeze is a hang, so capturing what it was doing is key.