Lightweight Process Snapshots for Historical Software Diagnostics

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional software diagnostic tools face challenges in providing historical context and minimizing disruption to live processes, as they often require heavyweight process dumps or traces, which are time-consuming and resource-intensive, and can disrupt production systems.

Innovation Solution

A lightweight process snapshot mechanism that allows for efficient creation and analysis of process states using shared memory pages and copy-on-write techniques, enabling diagnostic tools to inspect process callstacks, memory, and other components without halting the original process, and allowing for non-invasive data collection and comparison of snapshots over time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If traditional software diagnostic tools use heavyweight process dumps or traces to provide historical context, then diagnostic information completeness is improved, but system resource overhead and time consumption increase significantly

Engineering Contradiction:
Improvediagnostic information completenessVSAvoidresource overhead
Core Design Contradiction:
Loss of informationVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential diagnostic information (memory state, register state, instruction pointer) from the complete process state at specific points in time. Instead of capturing entire process dumps, it selectively snapshots only the memory and processor state needed for debugging, thereby reducing resource overhead while maintaining diagnostic completeness.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the diagnostic data collection into discrete snapshots taken at specific intervals or trigger events. Each snapshot contains only the necessary process state information at that moment, allowing incremental accumulation of diagnostic data without requiring continuous heavy resource allocation for complete process monitoring.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If traditional diagnostic tools create complete process copies or dumps for analysis, then historical state inspection accuracy is improved, but process disruption and system performance degradation worsen

Engineering Contradiction:
Improvehistorical state inspection accuracyVSAvoidprocess execution continuity
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent creates lightweight copies of only the essential process state (memory pages and register state) rather than complete process copies. These snapshots are taken at specific points in time and stored for later analysis, allowing accurate historical state inspection without requiring the original process to be halted or heavily instrumented.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent prepares diagnostic snapshots in advance by capturing process state at defined intervals or trigger events before diagnostic analysis is needed. This preliminary capture of state information allows subsequent analysis to proceed without disrupting the original process execution.

Inventive Principle:
Principle #10Preliminary action

3Speed

If diagnostic data collection is performed invasively on live processes, then real-time diagnostic capability is improved, but process stability and system reliability deteriorate

Engineering Contradiction:
Improvereal-time diagnostic capabilityVSAvoidprocess stability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent introduces a diagnostic snapshot mechanism as an intermediary between the live process and the diagnostic analysis tool. The snapshot captures process state without requiring continuous interaction with or instrumentation of the running process, thereby maintaining process stability while enabling real-time diagnostic capability through periodic or event-triggered snapshots.

Inventive Principle:
Principle #24Intermediary (Mediator)

Applied Scientific Principles

This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.

Function Achieved in This Case

This approach minimizes disruption to the original process, reduces resource overhead, and enables richer diagnostic data collection and analysis with minimal impact on performance, allowing for historical debugging and memory diagnostics in both production and development scenarios.

Implementation Method 1

The snapshot mechanism uses shared memory pages and copy-on-write techniques to avoid the need to create a complete copy of the process

Methodology Applied
Scientific EffectShared memory:

Implementation Method 2

Copy-on-write allows the operating system to map the actual pages of the entire address space of the original process into a second process snapshot quickly

Methodology Applied
Scientific EffectCopy-on-write:

Data Source

PatentEP2880536B1Historical software diagnostics using lightweight process snapshots
Publication Date: 2019.09.25 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2880536B1 patent drawingFigure 1
  • EP2880536B1 patent drawingFigure 2
  • EP2880536B1 patent drawingFigure 3~4

AI summary

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 diagnostic 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.