A large portion of software bugs are related to hangs. Analyzing and
diagnosing hang-related bugs involves capturing data from a hung program
and extracting attributes from the captured data. Extracting attributes
from the capture data provides a scheme to determine relevant
characteristics of the hang. Moreover, the extracted attributes may be
compared to known issues and, based on that comparison, a bug may be
classified as known or unknown. Alternatively, triage may be performed on
the client computing device in order to determine the potential cause of
the hang event. Once the potential cause of the hang event has been
determined, troubleshooting steps may be performed on the client
computing device to quarantine it. Ultimately, if the hang-inducing bug
is known, a user may be provided with a solution to the bug.
Alternatively, if the bug is unknown, implementations of the invention
send the captured data to be analyzed and fixed by the software's
provider.