Semantic stack trace

US9152537B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9152537-B2
Application numberUS-201313763431-A
CountryUS
Kind codeB2
Filing dateFeb 8, 2013
Priority dateFeb 8, 2013
Publication dateOct 6, 2015
Grant dateOct 6, 2015

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.

The present disclosure provides methods and systems for instrumenting a “semantic stack trace” (SST), where semantic information and dependency relationships between a plurality of code elements (“elements”) are captured during runtime execution of various front-end declarative languages, and are subsequently extracted for display in a SST-enabled interactive user interface with traversing capability. Embodiments of the present invention enable a framework for traversing and debugging complex code, providing an unprecedented lens into understanding code behavior in mixed imperative and declarative construction languages.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: recording, into a first node, a mapping of a current stack trace in response to an execution of a first instruction to construct a first element of a plurality of elements in a computer program, wherein the current stack trace is a stack trace that includes stack frames generated up to a particular point in the execution of code instructions in the computer program; storing the first node in a data structure configured for storing a plurality of nodes, wherein the first node includes a first set of stack frames associated with the execution of the first instruction to construct the first element; incrementally updating the first node by recording, into the first node, a first updated mapping of the current stack trace in response to the execution of a first subsequent instruction that has the first element as a parameter; recording, into a second node, the mapping of the current stack trace in response to the execution of a second instruction to construct a second element of the plurality of elements in the computer program; storing the second node in the data structure, wherein the second node comprises: a portion of the mapping of the current stack trace, the portion of the mapping of the current stack trace including a second set of stack frames associated with the execution of the second instruction to construct the second element; and a pointer to the first node; incrementally updating the second node by recording, into the second node, a second updated mapping of the current stack trace in response to the execution of a second subsequent instruction that has the second element as the parameter; and in response to a determination that no additional instruction for constructing an element exists in the computer program, generating a node string from the plurality of nodes that includes at least the first node and the second node. 2. The method of claim 1 , wherein the plurality of nodes represents a semantic stack trace for profiling executions of instructions in the computer program. 3. The method of claim 1 , wherein the first node further includes an initial pointer having a null value. 4. The method of claim 1 , wherein the first updated mapping includes the first set of stack frames and new stack frames generated as a result of the execution of the first subsequent instruction. 5. The method of claim 1 , wherein the second updated mapping includes the second set of stack and new-stack frames generated as a result of the execution of the second subsequent instruction. 6. The method of claim 1 , wherein recording, into the second node, comprises: identifying new stack frames generated by the execution of the second instruction by searching, within the current stack trace, for a matching lowest function caller frame that appears in a previous current stack trace, wherein the new stack frames are additional stack frames on top of a lowest caller frame, the new stack frames being the second set of stack frames associated with the execution of the second instruction; concatenating the new stack frames with existing stack frames from the previous current stack trace into a concatenated stack trace; and recording a mapping of the concatenated stack trace into the second node, wherein the portion of the mapping of the current stack trace contains the new stack frames and the pointer to the first node points to remaining stack frames in the current stack trace, the remaining stack frames being same as the existing stack frames of the previous current stack trace stored in the first node. 7. The method of claim 1 , wherein the first subsequent instruction comprises a rendering of the first element. 8. The method of claim 1 , wherein the first subsequent instruction comprises a fetching of data associated with the first element. 9. The method of claim 1 , wherein the second subsequent instruction comprises a rendering of the second element. 10. The method of claim 1 , wherein the second subsequent instruction comprises a fetching of data associated with the second element. 11. The method of claim 1 , wherein generating the node string comprises: in response to the determination that no additional instruction for constructing the element exists, recording, into a third node, the mapping of the current stack trace; and combining and converting the first node, the second node, and the third node into a string, whereby the string is the node string, wherein the node string presents the mapping of stack traces recorded in the first node, the second node, and the third node in a hierarchical order according to hierarchical dependencies between the first, second and third nodes. 12. A non-transitory computer readable medium storing instructions for causing a computer to execute a process, said instructions comprising: instructions for recording, into a first node, a current stack trace mapping in response to an execution of a first instruction to construct a first element of a plurality of elements in a computer program, wherein the first node is stored in a data structure configured for storing a plurality of nodes, the first node including a first set of stack frames associated with the execution of the first instruction and an initial pointer having a null value; instructions for incrementally updating the first node with a first updated current stack trace mapping in response to the execution of a first subsequent instruction for rendering the first element, wherein the first updated current stack trace mapping is a first semantic stack trace associated with the first element; instructions for recording, into a second node, the current stack trace mapping in response to the execution of a second instruction to construct a second element of the plurality of elements in the computer program, wherein the second node, stored in the data structure, comprises: a portion of the current stack trace mapping, the portion of the current stack trace mapping including a second set of stack frames associated with the execution of the second instruction; a pointer to the first node; instructions for incrementally updating the second node with a second updated current stack trace mapping in response to the execution of a second subsequent instruction for the rendering of the second element, wherein the second updated current stack trace mapping is a second semantic stack trace associated with the second element, the second element being associated with the first element in the first semantic stack trace; and instructions for, in response to a determination that no additional instruction to construct an element exists in the computer program, generating a node string from the plurality of nodes that includes at least the first node and the second node. 13. The non-transitory computer readable medium of claim 12 , wherein the instructions for recording, into the second node, comprises: instructions for identifying new stack frames generated by the execution of the second instruction by searching, within the current stack trace mapping, for a matching lowest function caller frame that appears in a previous current stack trace mapping, wherein the new stack frames are additional stack frames on top of a lowest caller frame, the new stack frames being the second set of stack frames associated with the execution of the second instruction; instructions for concatenating the new stack frames with existing stack frames from the previous current stack trace mapping into a concatenated stack trace; and instructions for recording a mapping of the concatenated stack trace into the second node, wherein the portion of the curren

Assignees

Inventors

Classifications

  • by tracing the execution of the program · CPC title

  • Arrangements for software engineering (testing or debugging G06F11/36; administrative, planning or organisation aspects of software project management G06Q10/06) · CPC title

  • Performance evaluation by tracing or monitoring · CPC title

  • Monitoring of software · CPC title

  • Structural analysis for program understanding · 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 US9152537B2 cover?
The present disclosure provides methods and systems for instrumenting a “semantic stack trace” (SST), where semantic information and dependency relationships between a plurality of code elements (“elements”) are captured during runtime execution of various front-end declarative languages, and are subsequently extracted for display in a SST-enabled interactive user interface with traversing capa…
Who is the assignee on this patent?
Facebook 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 Tue Oct 06 2015 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).