US 12,299,469 B2
Symbol mapping system for concurrent kernel and user space debugging of a virtual machine
Justin Moore, Austin, TX (US); Michael Swan, San Antonio, TX (US); and Gregory Price, Silver Spring, MD (US)
Assigned to NIGHTWING GROUP, LLC, New York, NY (US)
Filed by Nightwing Group, LLC, Dulles, VA (US)
Filed on Jun. 29, 2021, as Appl. No. 17/361,741.
Claims priority of provisional application 63/065,222, filed on Aug. 13, 2020.
Prior Publication US 2022/0050704 A1, Feb. 17, 2022
Int. Cl. G06F 9/455 (2018.01); G06F 9/46 (2006.01); G06F 11/362 (2025.01); G06F 16/24 (2019.01); G06F 16/25 (2019.01)
CPC G06F 9/45558 (2013.01) [G06F 9/461 (2013.01); G06F 11/362 (2013.01); G06F 16/24 (2019.01); G06F 16/25 (2019.01); G06F 2009/45591 (2013.01)] 17 Claims
OG exemplary drawing
 
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.