IP Library Granted Patent US 12,299,469
Granted Patent B2
US 12,299,469 · App. 17/361,741 · Granted May 13, 2025

Symbol mapping system for concurrent kernel and user space debugging of a virtual machine

Inventors: Justin Moore (Austin, TX); Michael Swan (San Antonio, TX); Gregory Price (Silver Spring, MD)
Assignee: NIGHTWING GROUP, LLC
G06F9/45558G06F9/461G06F11/362G06F16/24G06F16/25G06F2009/45591
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 12,299,469
App. No.
17/361,741
Granted
May 13, 2025
Kind
B2
Abstract

A method is provided comprising: monitoring, by a symbol context manager, context switch events that are generated in a virtual machine, and updating a symbol space map based on the context switch events; receiving, by the symbol context manager, a request to provide a symbol space of the virtual machine, the request being generated by a symbol database interface in response to a symbol query that is received at the symbol database interface from a debugger that is debugging the virtual machine, the symbol query being associated with a symbol that is part of the symbol space; and providing, by the symbol context manager, an indication of the symbol space of the virtual machine, the indication of the symbol space being provided based on the symbol space map.

Claims (43)

1. A method implemented by a computer processor executing computer software that causes the processor to perform steps comprising of:

executing debugging software on a computerized system that operates a virtual machine;

monitoring, by symbol context manager software operated by the processor, context switch events that are generated in the virtual machine, and updating a symbol space map based on the context switch events;

receiving, by the symbol context manager, a request to provide a symbol space of the virtual machine, the request being generated by a symbol database interface in response to a symbol query that is received at the symbol database interface from the debugging software that is debugging the virtual machine, the symbol query being associated with a symbol that is part of the symbol space;

providing, by the symbol context manager, an indication of the symbol space of the virtual machine, the indication of the symbol space being provided based on the symbol space map;

receiving, by the symbol context manager, an instruction to revert the virtual machine to a prior symbol context; and

in response to the instruction: (i) reconstructing a plurality of symbol database modules based on respective copies of the symbol database modules that are associated with the prior symbol context, and (ii) reconstructing a plurality of symbol module objects that reference the plurality of symbol database modules, the plurality of symbol module objects being reconstructed based on respective copies of the symbol module objects that are associated with the prior symbol context.

2. The method of claim 1 , further comprising resolving, by the symbol database interface, the symbol query based on the indication of the current symbol space.

3. The method of claim 1 , wherein the debugger is executed outside of the virtual machine.

4. The method of claim 1 , further comprising:

receiving, by the symbol context manager, an instruction to save a current symbol context of the virtual machine; and

in response to the instruction: (i) storing, in a secondary storage, a respective copy of each of a plurality of symbol module objects that are associated with the virtual machine, and (ii) storing, in the secondary storage, a respective copy of each of a plurality of database modules that are referenced by the symbol module objects.

5. The method of claim 4 , wherein the instruction is received from a virtual machine manager that is executing the virtual machine, the debugger, and the symbol context manager.

6. The method of claim 1 , wherein each of the plurality of symbol module objects is arranged to reference a different one of the symbol database modules.

7. A system, comprising:

a memory; and

at least one processor operatively coupled to the memory, the at least one processor being configured to perform the operations of:

executing debugging software on a computerized system that operates a virtual machine;

monitoring, by a symbol context manager, context switch events that are generated: in the virtual machine, and updating a symbol space map based on the context switch events;

receiving, by the symbol context manager, a request to provide a symbol space of the virtual machine, the request being generated by a symbol database interface in response to a symbol query that is received at the symbol database interface from the debugging software that is debugging the virtual machine, the symbol query being associated with a symbol that is part of the symbol space;

providing, by the symbol context manager, an indication of the symbol space of the virtual machine, the indication of the symbol space being provided based on the symbol space map

receiving, by the symbol context manager, an instruction to revert the virtual machine to a prior symbol context; and

in response to the instruction: (i) reconstructing a plurality of symbol database modules based on respective copies of the symbol database modules that are associated with the prior symbol context, and (ii) reconstructing a plurality of symbol module objects that reference the plurality of symbol database modules, the plurality of symbol module objects being reconstructed based on respective copies of the symbol module objects that are associated with the prior symbol context.

8. The system of claim 7 , wherein the at least one processor is further configured to perform the operation of resolving, by the symbol database interface, the symbol query based on the indication of the current symbol space.

9. The system of claim 7 , wherein the debugger is executed outside of the virtual machine.

10. The system of claim 7 , wherein the at least one processor is further configured to perform the operations of:

receiving, by the symbol context manager, an instruction to save a current symbol context of the virtual machine; and

in response to the instruction: (i) storing, in a secondary storage, a respective copy of each of a plurality of symbol module objects that are associated with the virtual machine, and (ii) storing, in the secondary storage, a respective copy of each of a plurality of database modules that are referenced by the symbol module objects.

11. The system of claim 10 , wherein the instruction is received from a virtual machine manager that is executing the virtual machine, the debugger, and the symbol context manager.

12. The system of claim 7 , wherein each of the plurality of symbol module objects is arranged to reference a different one of the symbol database modules.

13. A non-transitory computer-readable medium storing one or more processor-executable instructions, which when executed by at least one or processor cause the processor to perform the operations of:

executing debugging software on a computerized system that operates a virtual machine;

monitoring, by a symbol context manager software operated by the processor, context switch events that are generated in the virtual machine, and updating a symbol space map based on the context switch events;

receiving, by the symbol context manager, a request to provide a symbol space of the virtual machine, the request being generated by a symbol database interface in response to a symbol query that is received at the symbol database interface from the debugging software that is debugging the virtual machine, the symbol query being associated with a symbol that is part of the symbol space;

providing, by the symbol context manager, an indication of the symbol space of the virtual machine, the indication of the current symbol space being provided based on the symbol space map;

receiving, by the symbol context manager, an instruction to revert the virtual machine to a prior symbol context; and

in response to the instruction: (i) reconstructing a plurality of symbol database modules based on respective copies of the symbol database modules that are associated with the prior symbol context, and (ii) reconstructing a plurality of symbol module objects that reference the plurality of symbol database modules, the plurality of symbol module objects being reconstructed based on respective copies of the symbol module objects that are associated with the prior symbol context.

14. The non-transitory computer-readable medium of claim 13 , wherein the one or more processor-executable instructions further cause the at least one processor to perform the operation of resolving, by the symbol database interface, the symbol query based on the indication of the current symbol space.

15. The non-transitory computer-readable medium of claim 13 , wherein the debugger is executed outside of the virtual machine.

16. The non-transitory computer-readable medium of claim 13 , wherein the one or more processor-executable instructions further cause the at least one processor to perform the operations of:

receiving, by the symbol context manager, an instruction to save a current symbol context of the virtual machine; and

in response to the instruction: (i) storing, in a secondary storage, a respective copy of each of a plurality of symbol module objects that are associated with the virtual machine, and (ii) storing, in the secondary storage, a respective copy of each of a plurality of database modules that are referenced by the symbol module objects.

17. The non-transitory computer-readable medium of claim 13 , wherein the instruction is received from a virtual machine manager that is executing the virtual machine, the debugger, and the symbol context manager.

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 Jun 30, 2021
From: MOORE, JUSTIN; SWAN, MICHAEL; PRICE, GREGORY
To: RAYTHEON COMPANY
Reel/Frame 056716/0779 →
Continuity (2)
Provisional Application 63065222 · Aug 13, 2020
Related Publication 20220050704A1 · Feb 17, 2022
References Cited (2)
US 10740217B1 · Stupachenko · 2020 [cited by examiner]
US 20090044274A1 · Budko · 2009 [cited by examiner]