Function Evaluation using Lightweight Process Snapshots
First Claim
1. In a computing environment, a method of debugging a target process, the method comprising:
- generating a lightweight process snapshot from the target process, with the lightweight process snapshot and target process allowed to run independently; and
performing function evaluations against the lightweight process snapshot.
2 Assignments
0 Petitions
Accused Products
Abstract
A debugger creates a lightweight process snapshot of a debuggee target process and performs in-process or function evaluation (func-eval) inspection against the copy. This allows most state in the debuggee process to stay intact because changes made by the func-eval are local to the process snapshot. Debugger operations that are too destructive to the original debuggee process can be performed on the process snapshot without threatening the real process. Process snapshots allow the debugger to perform a func-eval while isolating the debuggee process and not losing the actual state of the original debuggee process. A new process snapshot of the debuggee process is created when the current snapshot is corrupt due to a func-eval side effect. The debugger may also use a lightweight machine snapshot of the host debuggee machine and perform func-evals against that machine snapshot to further isolate kernel and other side effects.
-
Citations
20 Claims
-
1. In a computing environment, a method of debugging a target process, the method comprising:
-
generating a lightweight process snapshot from the target process, with the lightweight process snapshot and target process allowed to run independently; and performing function evaluations against the lightweight process snapshot. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 17)
-
-
12. In a computing environment, a computer system including functionality for debugging a target process, the computer system comprising:
- one or more processors;
one or more computer readable media;
one or more computer modules implemented as computer executable instructions stored on the computer readable media, that when executed by one or more processors, cause the processors to perform the following;generating a lightweight process snapshot from the target process, with the lightweight process snapshot and target process allowed to run independently; and performing function evaluations against the lightweight process snapshot. - View Dependent Claims (13, 14, 16)
- one or more processors;
-
18. In a computing environment, a computer readable medium comprising computer executable instructions that when executed by one or more processor cause the one or more processor to perform the following:
-
generating a lightweight process snapshot from the target process, with the lightweight process snapshot and target process allowed to run independently; and performing function evaluations against the lightweight process snapshot. - View Dependent Claims (20)
-
-
19. The computer readable medium of claim 19, further comprising:
allowing all threads in the target process to execute during the function evaluation to avoid deadlocking the target process when inter-thread dependencies are encountered; and
wherein side effects of the function evaluation of the lightweight process snapshot are isolated from the target process.
Specification