Full state session reviving, forking, and snapshoting based on an application data dump
First Claim
Patent Images
1. A method, comprising:
- receiving an instruction to capture a session of an application executing on a computing device by an agent for capturing application sessions, the agent executing on the computing device;
in response to the instruction to capture the session of the application, producing an application session capture file by the agent, the application session capture file containing application memory corresponding to the session but not containing the application itself, wherein producing the session capture file comprises;
sending by the agent to an operating system of the computing device a request to dump the application memory, the application memory comprising information sufficient to capture a full state of the application session including a memory image containing one or more memory pages associated with the application and one or more CPU register values associated with the application;
in response to the request from the agent, dumping by the operating system the application memory comprising information sufficient to capture the full state of the application session including the memory image containing one or more memory pages associated with the application and the one or more CPU register values associated with the application;
recording the dumped memory image in the session capture file; and
recording the dumped CPU register values in the session capture file;
receiving a request to restore the application session on the computing device;
launching the application on the computing device and reproducing the full state of the captured session in the executing application based on the session capture file, such that the application resumes executing in the same exact place in execution as when the session was captured by;
loading the memory image of the application from the session capture file into live memory; and
setting values in one or more CPU registers based on the CPU register values recorded in the session capture file.
4 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are described for capturing and reproducing the full state of an application session. An application is captured by performing a dump of various components of the session and storing the components in an application session capture. Captured components include a memory image, CPU register values, open handles to kernel objects, and loaded libraries. The session is reproduced when requested based on the session capture. In cases where locations or references to certain items (e.g., memory locations, open handle references, library addresses, etc.) are different when the session is restored, a driver is used to remap the old locations or references to the new locations or references.
-
Citations
20 Claims
-
1. A method, comprising:
-
receiving an instruction to capture a session of an application executing on a computing device by an agent for capturing application sessions, the agent executing on the computing device; in response to the instruction to capture the session of the application, producing an application session capture file by the agent, the application session capture file containing application memory corresponding to the session but not containing the application itself, wherein producing the session capture file comprises; sending by the agent to an operating system of the computing device a request to dump the application memory, the application memory comprising information sufficient to capture a full state of the application session including a memory image containing one or more memory pages associated with the application and one or more CPU register values associated with the application; in response to the request from the agent, dumping by the operating system the application memory comprising information sufficient to capture the full state of the application session including the memory image containing one or more memory pages associated with the application and the one or more CPU register values associated with the application; recording the dumped memory image in the session capture file; and recording the dumped CPU register values in the session capture file; receiving a request to restore the application session on the computing device; launching the application on the computing device and reproducing the full state of the captured session in the executing application based on the session capture file, such that the application resumes executing in the same exact place in execution as when the session was captured by; loading the memory image of the application from the session capture file into live memory; and setting values in one or more CPU registers based on the CPU register values recorded in the session capture file. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computing system, comprising:
-
at least one processor; and memory including instructions that, when executed by the at least one processor, cause the computing device to perform the steps of; receiving an instruction to capture a session of an application executing on a computing device by an agent for capturing application sessions, the agent executing on the computing device; in response to the instruction to capture the session of the application, producing an application session capture file by the agent, the application session capture file containing application memory corresponding to the session but not containing the application itself, wherein producing the session capture file comprises; sending by the agent to an operating system of the computing device a request to dump the application memory, the application memory comprising information sufficient to capture a full state of the application session including a memory image containing one or more memory pages associated with the application and one or more CPU register values associated with the application; in response to the request from the agent, dumping by the operating system the application memory comprising information sufficient to capture the full state of the application session including the memory image containing one or more memory pages associated with the application and the one or more CPU register values associated with the application; recording the dumped memory image in the session capture file; and recording the dumped CPU register values in the session capture file; receiving a request to restore the application session on the computing device; launching the application on the computing device and reproducing the full state of the captured session in the executing application based on the session capture file, such that the application resumes executing in the same exact place in execution as when the session was captured by; loading the memory image of the application from the session capture file into live memory; and setting values in one or more CPU registers based on the CPU register values recorded in the session capture file. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer readable storage medium comprising one or more sequences of instructions, the instructions when executed by one or more processors causing the one or more processors to execute the operations of:
-
receiving an instruction to capture a session of an application executing on a computing device by an agent for capturing application sessions, the agent executing on the computing device; in response to the instruction to capture the session of the application, producing an application session capture file, the application session capture file containing application memory corresponding to the session but not containing the application itself, wherein producing the session capture file comprises; sending by the agent to an operating system of the computing device a request to dump the application memory, the application memory comprising information sufficient to capture a full state of the application session including a memory image containing one or more memory pages associated with the application and one or more CPU register values associated with the application; in response to the request from the agent, dumping by the operating system the application memory comprising information sufficient to capture the full state of the application session including the memory image containing one or more memory pages associated with the application and the one or more CPU register values associated with the application; recording the dumped memory image in the session capture file; and recording the dumped CPU register values in the session capture file; receiving a request to restore the application session on the computing device; launching the application on the computing device and reproducing the full state of the captured session in the executing application based on the session capture file, such that the application resumes executing in the same exact place in execution as when the session was captured by; loading the memory image of the application from the session capture file into live memory; and setting values in one or more CPU registers based on the CPU register values recorded in the session capture file. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification