Analysis of real-time software

US11650904B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11650904-B2
Application numberUS-201916724977-A
CountryUS
Kind codeB2
Filing dateDec 23, 2019
Priority dateDec 23, 2019
Publication dateMay 16, 2023
Grant dateMay 16, 2023

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.

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for performing real-time code analysis. One of the methods includes receiving a request to perform real-time code analysis on source code, wherein the request identifies one or more target source code elements. A plurality of real-time annotation values occurring in the source code for the target source code elements are identified. A call graph is generated for the one or more target source code elements. The call graph is traversed to identify one or more real-time violations, wherein each real-time violation is an instance in the source code that violates one or more real-time safe criteria. An output is provided that identifies one or more of the real-time violations occurring in the source code.

First claim

Opening claim text (preview).

What is claimed is: 1. A method performed by one or more computers, the method comprising: receiving a request to perform real-time code analysis on source code, wherein the request identifies one or more target source code elements; identifying a plurality of user-specified real-time annotation values occurring in the source code for the target source code elements, including identifying one or more real-time functions annotated with a check real-time safe annotation value and one or more non-real-time functions annotated with a non-real-time-only annotation value; generating a call graph for the one or more target source code elements, wherein the call graph has nodes and edges, wherein each node represents a respective target source code element or a function called directly or transitively by each target source code element, and wherein each edge between a first node and a second node represents that a first function represented by the first node calls a second function represented by the second node; traversing the call graph to identify one or more real-time violations, including identifying one or more invocations of the real-time functions calling non-real-time functions directly or transitively, wherein each real-time violation is an instance in the source code that violates one or more real-time safe criteria; and providing, in response to the request, an output that identifies one or more of the real-time violations occurring in the source code. 2. The method of claim 1 , wherein identifying the one or more real-time violations further comprises identifying an instance of a real-time function annotated with a check real-time safe annotation value calling a function that is not annotated with a check real-time safe annotation value. 3. The method of claim 1 , further comprising: obtaining one or more non-source-code annotations for one or more functions called directly or transitively by one or more of the target source code elements, and wherein identifying the one or more real-time violations comprises identifying a real-time violation from a non-source-code annotation value. 4. The method of claim 3 , wherein obtaining the one or more non-source-code annotations for the one or more functions called directly or transitively by one or more of the target source code elements comprises obtaining names of system functions called directly or transitively by a target source code element and associating the system functions with a non-real-time only annotation value. 5. The method of claim 4 , wherein obtaining the one or more non-source-code annotations for the one or more functions called directly or transitively by one or more of the target source code elements comprises obtaining the names of system functions that perform thread management or memory management operations. 6. The method of claim 3 , wherein obtaining the one or more non-source-code annotations for the one or more functions called directly or transitively by one or more of the target source code elements comprises obtaining names of library functions for performing real-time software control and associating the library functions with a check real-time safe annotation value. 7. The method of claim 1 , wherein identifying the one or more real-time violations comprises identifying a path in the call graph having an aggregate worst-case run time value that exceeds a threshold. 8. The method of claim 1 , wherein the real-time annotation values occurring in the source code are text sequences that are ignored by a compiler for the source code. 9. The method of claim 1 , wherein the request to perform real-time code analysis on source code is a request to perform real-time code analysis on a plurality of files in a code base. 10. A system comprising: one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising: receiving a request to perform real-time code analysis on source code, wherein the request identifies one or more target source code elements; identifying a plurality of user-specified real-time annotation values occurring in the source code for the target source code elements, including identifying one or more real-time functions annotated with a check real-time safe annotation value and one or more non-real-time functions annotated with a non-real-time-only annotation value; generating a call graph for the one or more target source code elements, wherein the call graph has nodes and edges, wherein each node represents a respective target source code element or a function called directly or transitively by each target source code element, and wherein each edge between a first node and a second node represents that a first function represented by the first node calls a second function represented by the second node; traversing the call graph to identify one or more real-time violations, including identifying one or more invocations of the real-time functions calling non-real-time functions directly or transitively, wherein each real-time violation is an instance in the source code that violates one or more real-time safe criteria; and providing, in response to the request, an output that identifies one or more of the real-time violations occurring in the source code. 11. The system of claim 10 , wherein identifying the one or more real-time violations further comprises identifying an instance of a real-time function annotated with a check real-time safe annotation value calling a function that is not annotated with a check real-time safe annotation value. 12. The system of claim 10 , wherein the operations further comprise: obtaining one or more non-source-code annotations for one or more functions called directly or transitively by one or more of the target source code elements, and wherein identifying the one or more real-time violations comprises identifying a real-time violation from a non-source-code annotation value. 13. The system of claim 12 , wherein obtaining the one or more non-source-code annotations for the one or more functions called directly or transitively by one or more of the target source code elements comprises obtaining names of system functions called directly or transitively by a target source code element and associating the system functions with a non-real-time only annotation value. 14. The system of claim 13 , wherein obtaining the one or more non-source-code annotations for the one or more functions called directly or transitively by one or more of the target source code elements comprises obtaining the names of system functions that perform thread management or memory management operations. 15. The system of claim 12 , wherein obtaining the one or more non-source-code annotations for the one or more functions called directly or transitively by one or more of the target source code elements comprises obtaining names of library functions for performing real-time software control and associating the library functions with a check real-time safe annotation value. 16. The system of claim 10 , wherein identifying the one or more real-time violations comprises identifying a path in the call graph having an aggregate worst-case run time value that exceeds a threshold. 17. The system of claim 10 , wherein the real-time annotation values occurring in the source code are text sequences that are ignored by a compiler for the source code. 18. One or more non-transitory computer storage media encoded with computer program

Assignees

Inventors

Classifications

  • Dependency analysis; Data or control flow analysis · CPC title

  • Analysis of software for verifying properties of programs (testing of software G06F11/3668) · CPC title

  • by runtime analysis (performance monitoring G06F11/3466) · CPC title

  • Real-time · CPC title

  • Visualisation of programs or trace data · 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 US11650904B2 cover?
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for performing real-time code analysis. One of the methods includes receiving a request to perform real-time code analysis on source code, wherein the request identifies one or more target source code elements. A plurality of real-time annotation values occurring in the source code for the target sou…
Who is the assignee on this patent?
Intrinsic Innovation Llc
What technology area does this patent fall under?
Primary CPC classification G06F11/3604. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 16 2023 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 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).