IP Library Granted Patent US 11,580,006
Granted Patent B2
US 11,580,006 · App. 17/164,554 · Granted Feb 14, 2023

Annotated deterministic trace abstraction for advanced dynamic program analysis

Inventor: Andrew R. Calvano (Draper, UT)
Assignee: Raytheon Company
G06F11/364G06F9/45558G06F9/54G06F16/148G06F16/172G06F2009/45583
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,580,006
App. No.
17/164,554
Granted
Feb 14, 2023
Kind
B2
Abstract

A virtual machine that includes a plurality of processes executes on a computer processor. A record-replay file, trace annotations, and an application program interface request are received into the computer processor. The trace annotations and application program interface request are translated into record-replay commands. The record-replay commands capture data from the record-replay file, and the captured data can be accessed via a programmatic interface.

Claims (42)

1. A process comprising:

receiving into a computer processor a record-replay file, the record-replay file created via an execution of a virtual machine using the computer processor, the virtual machine comprising a system of a plurality of processes;

receiving into the computer processor a trace annotation and an application program interface (API) request;

translating the trace annotation and the application program interface request into a record-replay command;

using the record-replay command to capture data from the record-replay file;

accessing the captured data from the record-replay file;

storing the captured data in a cache; and

using the captured data stored in the cache for an on-demand query of the record-replay file.

2. The process of claim 1 , wherein the trace annotation comprises one or more of a program execution point, a program execution sequence, a memory location, and a data description.

3. The process of claim 1 , wherein the record-replay command comprises one or more of a break point, a call back, an instrumentation, an examination of a variable value, an examination of a memory location, and an examination of a register.

4. The process of claim 1 , wherein the trace annotation is configurable, thereby enabling a determination of a result of an examination of the captured data from the record-replay file.

5. The process of claim 1 , wherein an examination of the captured data from the record-replay file comprises two or more of the plurality of processes.

6. The process of claim 1 , comprising receiving into the computer processor one or more record-replay files from a plurality of virtual machines, and wherein a programmatic interface captures data from two or more of the plurality of virtual machines.

7. The process of claim 1 , comprising creating a programmatic interface to access the captured data from the record-replay by querying the captured data via an application program interface.

8. The process of claim 7 , wherein the access of the captured data via the application program interface comprises a sequential querying and an on-demand querying.

9. The process of claim 1 , comprising using a programmatic interface and the captured data to debug the system of the plurality of processes.

10. A non-transitory computer-readable medium comprising instructions that when executed by a processor execute a process comprising:

receiving into a computer processor a record-replay file, the record-replay file created via an execution of a virtual machine using the computer processor, the virtual machine comprising a system of a plurality of processes;

receiving into the computer processor a trace annotation and an application program interface (API) request;

translating the trace annotation and the application program interface request into a record-replay command;

using the record-replay command to capture data from the record-replay file;

accessing the captured data from the record-replay file;

storing the captured data in a cache; and

using the captured data stored in the cache for an on-demand query of the record-replay file.

11. The non-transitory computer-readable medium of claim 10 , wherein the trace annotation comprises one or more of a program execution point, a program execution sequence, a memory location, and a data description.

12. The non-transitory computer-readable medium of claim 10 , wherein the record-replay command comprises one or more of a break point, a call back, an instrumentation, an examination of a variable value, an examination of a memory location, and an examination of a register.

13. The non-transitory computer-readable medium of claim 10 , wherein the trace annotation is configurable, thereby enabling a determination of a result of an examination of the captured data from the record-replay file.

14. The non-transitory computer-readable medium of claim 10 , wherein an examination of the captured data from the record-replay file comprises two or more of the plurality, of processes.

15. The non-transitory computer-readable medium of claim 10 , comprising instructions for receiving into the computer processor one or more record-replay files from a plurality of virtual machines, and wherein ae programmatic interface captures data from two or more of the plurality of virtual machines.

16. The non-transitory computer-readable medium of claim 10 , wherein the accessing the captured data from the record-replay file comprises querying of the captured data via an application program interface; and wherein the accessing the captured data via the application program interface comprises a sequential querying and an on-demand querying.

17. The non-transitory computer-readable medium of claim 10 , comprising instructions for using a programmatic interface and the captured data to debug the system of the plurality of processes.

18. A system comprising:

a computer processor; and

a computer memory coupled to the computer processor;

wherein the computer processor and the computer memory are operable for:

receiving into the computer processor or computer memory a record-replay file, the record-replay file created via an execution of a virtual machine using the computer processor, the virtual machine comprising a system of a plurality of processes;

receiving into the computer processor or computer memory a trace annotation and an application program interface (API) request;

translating the trace annotation and the application program interface request into a record-replay command;

using the record-replay command to capture data from the record-replay file; and

accessing the captured data from the record-replay file;

storing the captured data in a cache; and

using the captured data stored in the cache for an on-demand use of the record-replay file.

Assignments (4)
CHANGE OF NAME Recorded Jul 3, 2024
From: COLUMBUS BUYER LLC
To: NIGHTWING GROUP, LLC
Reel/Frame 068106/0251 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2024
From: RAYTHEON COMPANY
To: COLUMBUS BUYER LLC
Reel/Frame 068233/0420 →
SECURITY INTEREST Recorded Apr 1, 2024
From: COLUMBUS BUYER LLC; RAYTHEON BLACKBIRD TECHNOLOGIES, INC.; RAYTHEON FOREGROUND SECURITY, INC.
To: WELLS FARGO BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 066960/0411 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2021
From: CALVANO, ANDREW R.
To: RAYTHEON COMPANY
Reel/Frame 055103/0490 →
Continuity (1)
Related Publication 20220245051A1 · Aug 4, 2022