Discovery of Code Paths

US2016246701A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016246701-A1
Application numberUS-201514628116-A
CountryUS
Kind codeA1
Filing dateFeb 20, 2015
Priority dateFeb 20, 2015
Publication dateAug 25, 2016
Grant date

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.

Systems and techniques are described for tracking software code paths. A described technique includes receiving a first log of stack traces that includes a respective stack trace for each of a plurality of calls to access any of a plurality of data objects created during a first execution of an application, generating, for each of the stack traces in the first log, a script for a respective probe that identifies the data object accessed by the call corresponding to the stack trace, a respective instruction called to access the data object, and whether the access is a read or a write access for the data object, generating, for at least one of the probes, a second log that identifies the data object for the respective probe and the data stored in the data object, and generating a representation of the execution of the application using the second log.

First claim

Opening claim text (preview).

What is claimed is: 1 . A computer-implemented method comprising: receiving a first log of stack traces that includes a respective stack trace for each of a plurality of calls to access any of a plurality of data objects created during a first execution of an application; generating, for each of the stack traces in the first log, a script for a respective probe that identifies the data object accessed by the call corresponding to the stack trace, a respective instruction called to access the data object, and whether the access is a read or a write access for the data object; generating, for at least one of the probes, a second log that identifies the data object for the respective probe and the data stored in the data object; and generating a representation of the execution of the application using the second log. 2 . The method of claim 1 , wherein the script for the respective probe that identifies the data object accessed by the call corresponding to the stack trace comprises a script for the respective probe that identifies the data object accessed by the call corresponding to the stack trace with an address for the data object. 3 . The method of claim 1 , wherein generating, for the at least one of the probes, the second log that identifies the data object for the respective probe and the data stored in the data object comprises: for each probe in a subset of the probes generated from a stack trace in the first log that identifies a read access to a respective data object, storing a current data value from the respective data object in the second log when the respective data object is accessed; and for each probe in another subset of the probes generated from a stack trace in the first log that identifies a write access to a respective data object, storing a new data value and a current data value from the respective data object in the second log when the respective data object is accessed. 4 . The method of claim 1 , wherein each of the probes identify the respective stack trace. 5 . The method of claim 1 , comprising: receiving, for at least one of the probes, input from a user defining logic for the corresponding probe, wherein the logic provides troubleshooting analysis to a user; determining, during a second execution of the application, that the logic for a particular probe should be executed; and presenting, using the logic for the particular probe, information about a respective particular data object identified in the script for the particular probe in response to determining that the logic for the particular probe should be executed. 6 . The method of claim 1 , wherein generating the representation of the execution of the application using the second log comprises: analyzing a performance of the execution of the application using the second log; and providing a visual presentation of the performance on a user interface. 7 . The method of claim 6 , wherein analyzing the performance of the execution of the application using the second log comprises analyzing a central processing unit's access to a cache during the execution of the application. 8 . The method of claim 1 , wherein generating the representation of the execution of the application using the second log comprises generating instructions for a presentation of a visual representation of the execution of the application, the method comprising: providing the instructions for the presentation of the visual representation of the execution of the application to a display. 9 . The method of claim 8 , wherein providing the instructions for the presentation of the visual representation of the execution of the application to the display comprises providing, for at least one of the probes, instructions for a presentation of at least some of the data stored in the corresponding data object to the display. 10 . The method of claim 9 , wherein providing the instructions for the presentation of at least some of the data stored in the corresponding data object to the display comprises providing instructions for a presentation of data identifying how the data stored in the corresponding data object is changed or accessed during the execution of the application. 11 . The method of claim 8 , wherein providing the instructions for the presentation of the visual representation of the execution of the application to the display comprises providing instructions for a presentation of a visual representation of the execution of the application using data identified in at least one of the probes. 12 . The method of claim 11 , wherein providing the instructions for the presentation of the visual representation of the execution of the application comprises: presenting a history of the execution of the application using the second log; and highlighting a representation of a particular probe from the probes when data from the corresponding data object is accessed during the execution of the application. 13 . The method of claim 1 , comprising: receiving, for each of the plurality of data objects, a call to create the respective data object during the first execution of the application; receiving, for each of the plurality of data objects in response to receiving the call to execute the corresponding constructor method, a respective return address that identifies a corresponding memory location for the data object; assigning, for each of the plurality of data objects, a corresponding watchpoint address, which causes a page fault when accessed, to the corresponding data object; receiving, for at least some of the plurality of data objects, a call to execute a respective instruction that includes the corresponding watchpoint address to access the corresponding data object; and recording, in response to receiving the call to execute the instruction that includes the corresponding watchpoint address to access the corresponding data object, a stack trace of a call stack for the application in the first log. 14 . The method of claim 13 , wherein assigning the corresponding watchpoint address to corresponding the data object that will cause a page fault when accessed comprises mapping, for each of the plurality of data objects, the corresponding watchpoint address to the corresponding return address in a table. 15 . The method of claim 13 , comprising: replacing, for the at least some of the plurality of data objects in response to receiving the call to execute the instruction that includes the corresponding watchpoint address to access the corresponding data object, the corresponding watchpoint address in the respective instruction with the corresponding return address; and executing, for the at least some of the plurality of data objects in response to replacing the corresponding watchpoint address in the respective instruction with the corresponding return address, the respective instruction with the corresponding return address. 16 . The method of claim 13 , wherein receiving the call to execute the respective instruction that includes the corresponding watchpoint address to access the corresponding data object comprises: determining, for the at least some of the plurality of data objects, that accessing the watchpoint address will cause a page fault; and receiving, for the at least some of the plurality of data objects, the call to execute the respective instruction that includes the corresponding watchpoint address to access the corresponding data object in response to determining that accessing the watchpoint address will cause a page fault. 17 . The method of claim 13 , wher

Assignees

Inventors

Classifications

  • by tracing the execution of the program · CPC title

  • for test execution, e.g. scheduling of test suites · 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 US2016246701A1 cover?
Systems and techniques are described for tracking software code paths. A described technique includes receiving a first log of stack traces that includes a respective stack trace for each of a plurality of calls to access any of a plurality of data objects created during a first execution of an application, generating, for each of the stack traces in the first log, a script for a respective pro…
Who is the assignee on this patent?
Vmware Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/3636. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Aug 25 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). 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).