Debugging and perfomance analysis of applications
First Claim
Patent Images
1. A non-transitory computer-readable medium having stored thereon computer-executable instructions that, responsive to execution by a computer system, cause said computer system to perform operations comprising:
- recording function calls between a graphics application and a graphics application programming interface (API) while operating on a frame of interest;
maintaining a reference count for an object created by said graphics API, wherein said reference count is incremented each time said object is referenced and decremented each time a reference to said object is removed;
manipulating said reference count such that said graphics API behaves as if there is at least one remaining reference for said object and does not delete said object when said reference count for said object reaches zero so that said object remains intentionally available when said frame of interest is subsequently replayed;
recording a beginning state of said graphics API;
determining a difference between said beginning state and an ending state of said graphics API;
generating a list of graphics API calls that return said ending state to said beginning state; and
after said manipulating, replaying said frame of interest including repeating said function calls and using said object during said replaying.
1 Assignment
0 Petitions
Accused Products
Abstract
While an application is still running and using a resource that the application has already allocated, real-time capture is used to allow for a minimal overhead, quick turnaround solution for debugging and performance analysis. Application programming interface interception can be used to construct a database of resource usage that can then be mined for dependencies.
54 Citations
16 Claims
-
1. A non-transitory computer-readable medium having stored thereon computer-executable instructions that, responsive to execution by a computer system, cause said computer system to perform operations comprising:
-
recording function calls between a graphics application and a graphics application programming interface (API) while operating on a frame of interest; maintaining a reference count for an object created by said graphics API, wherein said reference count is incremented each time said object is referenced and decremented each time a reference to said object is removed; manipulating said reference count such that said graphics API behaves as if there is at least one remaining reference for said object and does not delete said object when said reference count for said object reaches zero so that said object remains intentionally available when said frame of interest is subsequently replayed; recording a beginning state of said graphics API; determining a difference between said beginning state and an ending state of said graphics API; generating a list of graphics API calls that return said ending state to said beginning state; and after said manipulating, replaying said frame of interest including repeating said function calls and using said object during said replaying. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer-readable medium having stored thereon computer-executable components for analysis of a frame of interest processed by a graphics application, said components comprising:
-
a graphics application programming interface (API) operable for creating an object used by said graphics application, wherein a reference count for said object is incremented each time said object is referenced and decremented each time a reference to said object is removed, wherein said reference count is manipulated such that said graphics API behaves as if there is at least one remaining reference for said object and does not delete said object even if the number of times said reference count is incremented and the number of times said reference count is decremented are equal so that said object remains available to said graphics application at any time said frame is subsequently replayed; an interception layer operable for intercepting function calls between said graphics application and said graphics API and for writing information about said function calls to a first database; a replay controller operable for replaying said frame after said reference count is manipulated, said replaying including repeating said function calls and using said object, wherein said replay controller is further operable for executing a list of graphics API calls that return said graphics API from its ending state to an earlier state; and a graphical user interface (GUI) operable for displaying relationships between said function calls. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A system comprising:
-
a processor; and memory coupled to said processor and having stored therein instructions that, responsive to execution by said system, cause said system to perform operations comprising; generating in real time a database comprising a record of function calls between a graphics application and a graphics application programming interface (API) while operating on a frame of interest; generating a graphical user interface (GUI) that displays relationships between said function calls, wherein said GUI comprises colored arrows that point from a first function call to a second function call that utilizes an object also utilized by said first function call; maintaining a reference count for an object created by said graphics API, wherein said reference count is incremented each time said object is referenced and decremented each time a reference to said object is removed, wherein said reference count is manipulated such that said graphics API behaves as if there is at least one remaining reference for said object and does not delete said object even if the number of times said reference count is incremented and the number of times said reference count is decremented are equal so that said object is available when said frame of interest is subsequently replayed; recording a beginning state of said graphics API; determining a difference between said beginning state and an ending state of said graphics API; generating a list of graphics API calls that return said ending state to said beginning state; and after said reference count is manipulated, replaying said frame of interest including repeating said function calls and using said object during said replaying. - View Dependent Claims (14, 15, 16)
-
Specification