IP Library Granted Patent US 10,324,823
Granted Patent B2
US 10,324,823 · App. 14/563,822 · Granted Jun 18, 2019

Historical software diagnostics using lightweight process snapshots

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 10,324,823
App. No.
14/563,822
Granted
Jun 18, 2019
Kind
B2
Abstract

A debugging and diagnostics system allows users to take lightweight process snapshots of running debuggee processes so the users may analyze those snapshots at a later time. The snapshot mechanism allows debugging tools to compare an original process or one or more process snapshots or to compare any of a series of snapshots to each other. The snapshot mechanism further allows users to inspect a snapshot of process memory while allowing the original process to continue running with minimal impact. A user may do historical debugging using process snapshots of a debuggee process taken over time. This allows the user to view the state of the debuggee process as it existed when the snapshot was taken. The lightweight process snapshot is less invasive because it does not require a full copy of the memory and allows the original process to run un-interrupted while specific collections and inspections are completed.

Claims (35)

1. In a computing environment, a method of debugging an executing process, the method comprising:

simultaneously running, independently, an executing process and a snapshot of the executing process, wherein the executing process and the snapshot point to a same physical memory address; and

analyzing data collected from the snapshot, using a debugging tool associated with the snapshot, without affecting the executing process.

2. The computer-implemented method of claim 1 , wherein the snapshot is automatically generated based on occurrence of an event.

3. The computer-implemented method of claim 1 , further comprising:

generating the snapshot of the executing process, wherein the execution of the executing process is continued after generating the snapshot.

4. The computer-implemented method of claim 1 , further comprising:

collecting the data from the snapshot.

5. The computer-implemented method of claim 1 , wherein the snapshot comprises a copy of current data in the virtual memory addresses of the executing process.

6. The computer-implemented method of claim 1 , wherein the snapshot of the executing process is generated at predetermined times.

7. The computer-implemented method of claim 1 , further comprising:

generating a plurality of snapshots based on satisfaction of conditions provided by a user using the debugging tool.

8. The computer-implemented method of claim 1 , wherein the data collected in the snapshot comprises call stacks and variable values.

9. The computer-implemented method of claim 1 , wherein the execution of the executing process is continued after generating the snapshot.

10. The computer-implemented method of claim 1 , further comprising:

debugging the executing process by analyzing the data collected in the snapshot while allowing the executing process to run.

11. The computer-implemented method of claim 1 , further comprising:

displaying data captured in the snapshot in a user interface.

12. A computer-readable medium comprising instructions stored thereon that, when executed by a computer system, cause the computer system to:

independently run an executing process and a process snapshot of the executing process simultaneously, wherein the executing process and the snapshot point to a same physical memory address; and

analyze data collected from the process snapshot, using a debugging tool associated with the process snapshot, without affecting the executing process.

13. The computer-readable medium of claim 12 , wherein the process snapshot is automatically generated based on occurrence of an event.

14. The computer-readable medium of claim 12 , wherein the instructions, when executed by the computer system, further cause the computer system to:

generate the snapshot of the executing process, wherein the execution of the executing process is continued after generating the process snapshot.

15. The computer-readable medium of claim 12 , wherein the instructions, when executed by the computer system, further cause the computer system to:

collect the data from the process snapshot.

16. The computer-readable medium of claim 12 , wherein the process snapshot comprises a copy of current data in the virtual memory addresses of the executing process.

17. A computer system comprising: a memory and a processor configured to utilize instructions in the memory to implement a method for debugging an executing process, the computer system configured to:

simultaneously run, independently, the executing process and a snapshot of the executing process, wherein the executing process and the snapshot point to a same physical memory address; and

analyze data collected from the snapshot, using a debugging tool associated with the snapshot, without affecting the executing process.

18. The computer system of claim 17 , wherein the computer system is further configured to:

generate the snapshot of the executing process, wherein the execution of the executing process is continued after generating the snapshot.

19. The computer system of claim 17 , wherein the snapshot comprises a copy of current data in the virtual memory addresses of the executing process.

20. The computer system of claim 17 , wherein the computer system is further configured to:

collect the data from the snapshot.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034819/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2015
From: DAVIS, JACKSON; KIM, TAE HYUNG; THOMSEN, COLIN A.; CARROLL, STEVE
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034737/0507 →
Cited By (1)
US 12,602,276