Software Checkpoint Restoration Between Distinctly Compiled Executables

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging large and long-running software applications is inefficient when using unoptimized builds due to significant runtime differences and the need to start from the beginning for checkpointing, which is costly in terms of execution time and computational resources, especially when customers do not share proprietary designs with developers.

Innovation Solution

Implementing a software checkpoint-restoration method that allows switching between optimized and unoptimized builds during execution, using a switching function to restart with an unoptimized build after generating a checkpoint image, enabling debugging without starting from the beginning and reducing computational overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If unoptimized builds are used for debugging, then debugging capability is improved, but execution time and computational resources increase significantly

Engineering Contradiction:
Improvedebugging capabilityVSAvoidexecution time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The system dynamically switches between optimized and unoptimized builds based on the debugging needs. During normal operation, the optimized build is used for performance, but when a checkpoint is taken, the system can restore to an unoptimized build version to enable debugging capabilities without permanently sacrificing execution speed.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The optimization level parameter of the executable is changed between different states. The system maintains both optimized and unoptimized versions and switches between them based on whether execution or debugging is the current priority, thereby resolving the contradiction between performance and debugging capability.

Inventive Principle:
Principle #35Parameter changes

2Ease of operation

If checkpointing is performed on unoptimized builds, then debugging from checkpoint is enabled, but computational resources and execution time increase

Engineering Contradiction:
Improvecheckpoint restoration capabilityVSAvoidcomputational resources
Core Design Contradiction:
Ease of operationVSUse of energy by moving object

Solution Approach 1:

The system performs preliminary actions by maintaining both optimized and unoptimized builds in readiness. When a checkpoint needs to be restored for debugging, the unoptimized build is already prepared or can be quickly loaded, avoiding the need to recompile or perform expensive initialization operations from scratch.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates a copy of the unoptimized build specifically for debugging purposes while maintaining the optimized build for normal operation. This copying approach allows checkpoint restoration without requiring the entire system to be recompiled or reinitialized, thereby reducing computational resource consumption.

Inventive Principle:
Principle #26Copying

3Ease of operation

If developers need to debug customer software, then debugging capability is improved, but proprietary design information may be exposed

Engineering Contradiction:
Improvedebugging capabilityVSAvoidproprietary design exposure
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The system extracts only the necessary debugging capabilities from the full unoptimized build. By using checkpoint restoration, the developer can examine the state of the application at specific points without having access to the complete unoptimized source code or all proprietary design information, thereby limiting the exposure of sensitive data while maintaining debugging capability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The debugging process is segmented into discrete checkpoint states rather than requiring access to the entire unoptimized build. Developers can investigate specific checkpoint states independently, which allows focused debugging without exposing the full proprietary design architecture of the customer's software.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP3891613B1Software checkpoint-restoration between distinctly compiled executables
Publication Date: 2023.01.11 SIEMENS INDUSTRY SOFTWARE INC
  • EP3891613B1 patent drawingFigure 1
  • EP3891613B1 patent drawingFigure 2~3B
  • EP3891613B1 patent drawingFigure 4A~5B

AI summary

A system and method for software checkpoint-restoration between distinctly compiled executables is disclosed. A first compiled version of the software, such as Version A, is executed. After which, checkpointing is performed in order to generate a checkpoint image. After checkpointing, restarting execution is performed with at least some of a second compiled version of the software, such as Version B, being executed using a switching function that is configured to switch execution upon restart at least partly to the second compiled version of the software. In this way, different executable versions may be used during the restart than during the initial execution, such as an unoptimized build during the restart versus an optimized build during the initial execution, so that software testing and/or debugging may be performed more efficiently.