Synchronized Multi-Version Code Debugging Without Manual Switching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing techniques for comparing and debugging different versions of a software application are resource-intensive and cumbersome, requiring manual switching between developer tools and lacking seamless synchronization of execution flows.

Innovation Solution

A debugger synchronizes the execution of different software application versions by stepping to and setting breakpoints at logically corresponding points, using source code and binary comparisons to identify and highlight differences, and translating variable names for synchronized expression evaluation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple instances of developer tools are run side-by-side to compare different software versions, then debugging capability is improved, but resource consumption increases significantly

Engineering Contradiction:
Improvedebugging capabilityVSAvoidresource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent merges multiple developer tool instances into a single integrated debugging interface that can simultaneously debug multiple versions of software. The system combines version selection, execution control, and comparison display in one unified tool, eliminating the need to run separate developer tool instances for each version comparison.

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If multiple instances of developer tools are run side-by-side to compare different software versions, then debugging capability is improved, but operational complexity increases due to manual switching

Engineering Contradiction:
Improvedebugging capabilityVSAvoidoperational convenience
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system combines multiple version debugging interfaces into a single unified display that shows execution states of different software versions simultaneously. The unified interface includes synchronized breakpoints, unified step control, and side-by-side comparison panels, eliminating the need to manually switch between separate tool instances.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system provides real-time feedback by automatically synchronizing execution states between different versions. When a breakpoint is hit in one version, the system automatically highlights corresponding locations in other versions, providing immediate visual feedback about execution differences without requiring manual intervention.

Inventive Principle:
Principle #23Feedback

3Use of energy by moving object

If developer tools are run in series to compare different software versions, then resource consumption is reduced, but time consumption increases due to sequential debugging

Engineering Contradiction:
Improveresource consumptionVSAvoiddebugging time
Core Design Contradiction:
Use of energy by moving objectVSLoss of time

Solution Approach 1:

The system enables continuous parallel debugging by maintaining simultaneous execution of multiple software versions within a single debugging session. The unified interface allows continuous comparison of execution flows, variable states, and stack traces across versions without interrupting the debugging process to switch between tools.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The patent merges sequential debugging operations into a single parallel process by integrating multiple version controls and execution engines within one debugging session, allowing resource-efficient simultaneous debugging of multiple versions.

Inventive Principle:
Principle #5Merging (Combining)

4Use of energy by moving object

If sequential debugging sessions are used to compare different software versions, then resource consumption is reduced, but information retention becomes difficult due to mental burden

Engineering Contradiction:
Improveresource consumptionVSAvoidinformation retention
Core Design Contradiction:
Use of energy by moving objectVSLoss of information

Solution Approach 1:

The system maintains continuous visibility of multiple version states throughout the debugging process. The unified interface displays execution pointers, variable values, and stack traces for all selected versions simultaneously, keeping all relevant information continuously accessible without requiring the debugger to remember details from previous sessions.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS20250217268A1Multiple simultaneous code debugging
Publication Date: 2025.07.03 MICROSOFT TECHNOLOGY LICENSING LLC
  • US20250217268A1 patent drawing
  • US20250217268A1 patent drawing
  • US20250217268A1 patent drawing

AI summary

Disclosed is a technique for debugging different versions of a software application, each associated with a different branch of a source code base. A debugger simultaneously debugs the different versions, synchronizing execution while highlighting differences between them. Execution is synchronized by stepping to and setting breakpoints on logically corresponding points of execution. For example, a single “step” command may cause both versions to step to the same logical code location. Similarly, a single “insert breakpoint” command may cause breakpoints to be placed at the same logical code location in both versions. Corresponding logical points of execution may be determined by comparing source code branches and application binaries of the different versions. Differences between the versions may be displayed visually, including changes to source code and changes to the binary executables. While execution is paused in the debugger, mappings from old to new function and variable names may be visualized.