Suspending and resuming a graphics application executing on a target device for debugging

US9298586B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9298586-B2
Application numberUS-201113306530-A
CountryUS
Kind codeB2
Filing dateNov 29, 2011
Priority dateOct 11, 2011
Publication dateMar 29, 2016
Grant dateMar 29, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Debugging a graphics application executing on a target device. The graphics application may execute CPU instructions to generate graphics commands to graphics hardware for generation of graphics on a display. A breakpoint for the graphics application may be detected at a first time. In response to detecting the breakpoint, one or more graphics commands which were executed by the graphics hardware proximate to the first time may be displayed. Additionally, source code corresponding to CPU instructions which generated the one or more graphics commands may be displayed.

First claim

Opening claim text (preview).

We claim: 1. A method for debugging a graphics application executing on a target device, the method comprising: executing the graphics application by the target device, wherein the graphics application includes instructions which when executed by a central processing unit (CPU) invoke graphics commands for a graphics processing unit (GPU) to generate graphics on a display; detecting a breakpoint for the graphics application at a first time; in response to detecting the breakpoint: sending a lock command to a graphics framework that provides application programming interfaces for the GPU; in response to receiving the lock command at the graphics framework, locking the graphics framework for the GPU on the target device to prevent commands being sent to a graphics driver on the target device; capturing information of the graphics application based on the breakpoint; suspending execution of the graphics application; providing the information to a host device to perform debugging; and resuming execution of the graphics application on the target device. 2. The method of claim 1 , wherein the suspending execution of the graphics application comprises: determining state data of the graphics application at the first time; and storing the state data of the graphics application; wherein the state data is usable by the target device to resume execution of the graphics application on the target device at the state of the first time. 3. The method of claim 1 , further comprising: in response to detecting the breakpoint and after the suspending execution of the graphics application, executing a debugging application, wherein the executing the debugging application comprises providing the information to the host device to perform debugging. 4. The method of claim 1 , wherein the information corresponds to a graphics frame immediately after the first time. 5. The method of claim 1 , further comprising: receiving a request from the host device for graphics data corresponding to a first graphics command executed after the first time; providing the graphics data in response to the request. 6. The method of claim 1 , further comprising: receiving a request from the host device related to a first graphics command executed proximate to the first time; re-executing the first graphics command; and providing a response to the request based on the re-executing the first graphics command. 7. The method of claim 6 , wherein the re-executing is performed by executing a playback application on the target device. 8. The method of claim 1 , wherein the graphics framework is locked only for the graphics application. 9. The method of claim 1 , wherein other applications different than the graphics application executing on the target device are not effected when the graphics framework is locked for the graphics application. 10. A non-transitory, computer accessible memory medium storing program instructions for debugging a graphics application, wherein the program instructions are executable by a processor to: execute a graphics application; receive an indication of a breakpoint for the graphics application; in response to detecting the breakpoint, execute a debugging application on the target device; send a lock command to a graphics framework that provides application programming interfaces for a graphics processing unit (GPU); in response to receiving the lock command at the graphics framework, lock the graphics framework for the GPU on a target device to prevent commands being sent to a graphics driver on the target device; suspend execution of the graphics application; capture debugging information related to the graphics application; and provide the debugging information to a host device for performing debugging wherein said capturing debugging information and providing the debugging information is performed by the debugging application. 11. The non-transitory, computer accessible memory medium of claim 10 , wherein the program instructions are further executable to: receive a command from the host device to resume execution of the graphics application; and resume execution of the graphics application in response to the command from the host device. 12. The non-transitory, computer accessible memory medium of claim 10 , wherein the program instructions are further executable to: in response to detecting the breakpoint, execute a debugging application on the target device, wherein the capturing debugging information and providing the debugging information is performed by the debugging application. 13. The non-transitory, computer accessible memory medium of claim 10 , wherein the program instructions are further executable to: receive a request from the host device for information regarding a graphics command; execute a playback application to determine the information; and provide the information to the host device in response to the request. 14. The non-transitory, computer accessible memory medium of claim 10 , wherein the indication of the breakpoint is received from the host device. 15. The non-transitory, computer accessible memory medium of claim 10 , wherein the indication of the breakpoint is received in response to user input. 16. The non-transitory, computer accessible memory medium of claim 10 , wherein the breakpoint is comprised in the graphics application. 17. The non-transitory, computer accessible memory medium of claim 10 , wherein the graphics framework is locked only for the graphics application. 18. The non-transitory, computer accessible memory medium of claim 10 , wherein other applications different than the graphics application executing on the target device are not effected when the graphics framework is locked for the graphics application. 19. A device, comprising: a display for presenting graphics; a central processing unit (CPU) coupled to the display; a graphics processing unit (GPU) coupled to the CPU and the display; at least one memory coupled to each of the CPU and the GPU, wherein the memory stores a graphics application executing on a target device, a graphics framework, and a debugging application, wherein the graphics application executes on the CPU and provides graphics commands to the GPU through the graphics framework to generate graphics data for presentation on the display; wherein, in response to receiving an indication of a breakpoint for the graphics application, the CPU: sends a lock command to the graphics framework that provides application programming interfaces for the GPU; locks the graphics framework for the GPU on the target device to prevent commands being sent to a graphics driver on the target device in response to receiving the lock command at the graphics framework; captures information of the graphics application; suspends execution of the graphics application; provides debugging information related to the graphics application to a host device for performing debugging; and receives a command from the host device to resume execution of the graphics application; wherein the target device is configured to resume execution of the graphics application based on the command from the host device. 20. The device of claim 19 , wherein the command from the host device is received in response to user input to the host device. 21. The device of claim 19 , wherein the debugging application is further executable to: receive a request from the host device for further information regarding a graphics command; exe

Assignees

Inventors

Classifications

  • by performing operations on the source code, e.g. via a compiler · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9298586B2 cover?
Debugging a graphics application executing on a target device. The graphics application may execute CPU instructions to generate graphics commands to graphics hardware for generation of graphics on a display. A breakpoint for the graphics application may be detected at a first time. In response to detecting the breakpoint, one or more graphics commands which were executed by the graphics hardwa…
Who is the assignee on this patent?
Sowerby Andrew M, Roy Jean-Francois, Iliescu Filip, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F11/3624. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 29 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).