Patent ID: 8918764

Claim:
A computer program product stored on a computer-readable storage medium for performing a software trace of a software component, the computer program product comprising instructions for: initiating a trace operation for the software component, the trace operation comprising: for each resource of the software component, determining whether the resource is currently in use; for each resource that is currently in use: comparing a current state of the resource to a previous state of the resource; in response to determining that the current state of the resource has changed from the previous state, writing the current state for the resource to a trace data set; in response to determining that the current state of the resource has not changed from the previous state, moving to a next resource without writing the current state for the resource to the trace data set; for each resource that is not currently in use, moving to the next resource without writing the current state for the resource; determining users waiting for the resource and recording identifying information for the users waiting for the resource in the trace data set; for each user of the software component: writing a current state for the user to the trace data set in response to determining that the user is waiting for one or more resources; writing the current state for the user to the trace data set in response to determining that the user has one of: exclusive use of one or more resources; and shared use of one or more resources; and in response to determining that the user is waiting for one or more resources, writing the current state, wherein the current state comprises: identifying information for the one or more users that own the one or more resources; and the states of the one or more users that own the one or more resources.