Synchronized Multi-Session Debugging for Execution Difference Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers face challenges in efficiently diagnosing and resolving execution differences when porting software to new hardware platforms, as existing methods require manual control and comparison of multiple debugging sessions, which is time-consuming and cumbersome.

Innovation Solution

A system and method for concurrently controlling and synchronizing multiple remote debug sessions using a client debug engine, allowing for simultaneous execution of commands and automatic comparison of data to identify differences, with optional filtering for known causes and generation of reports.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If a developer manually controls and compares multiple debugging sessions independently, then detailed examination of each process is possible, but the process becomes time-consuming and overwhelming due to manual tracking of differences

Engineering Contradiction:
Improvedetailed examination capabilityVSAvoiddebugging time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent combines multiple independent debugging sessions into a single synchronized debugging interface. The system establishes connections to multiple remote debugging sessions and synchronizes their execution, allowing a developer to control and compare all sessions simultaneously through one unified interface rather than manually switching between multiple debuggers.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces a local debugging session as an intermediary that mediates between the developer and multiple remote debugging sessions. The local session receives commands from the developer, distributes them to remote sessions, collects results, and presents synchronized data for comparison, thereby eliminating the need for manual coordination of multiple independent debugging processes.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of information

If a developer uses multiple independent debugging sessions to compare execution behavior, then comprehensive data collection is possible, but the complexity of controlling and synchronizing sessions increases significantly

Engineering Contradiction:
Improvedata collection completenessVSAvoiddebugging system complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent creates a universal debugging system where a single local debugging session can connect to and control multiple remote debugging sessions simultaneously. This multi-functional approach allows one debugging interface to perform the work of multiple independent debuggers, reducing system complexity while maintaining comprehensive data collection capabilities across different platforms and compilers.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent segments the debugging system into a local controlling session and multiple remote execution sessions. This segmentation allows the complex task of multi-platform debugging to be divided into manageable components: the local session handles coordination and synchronization, while remote sessions handle platform-specific execution, thereby reducing overall system complexity.

Inventive Principle:
Principle #1Segmentation

3Measurement precision

If manual comparison of debugging data is performed, then detailed analysis of variables and registers is possible, but automatic detection of execution differences is lost

Engineering Contradiction:
Improvedata analysis detailVSAvoidautomatic difference detection
Core Design Contradiction:
Measurement precisionVSExtent of automation

Solution Approach 1:

The patent implements automatic feedback mechanisms that continuously monitor and compare data from multiple remote debugging sessions. The system automatically detects differences in variables, registers, and memory states between platforms and presents these differences to the developer, eliminating the need for manual comparison while maintaining detailed analysis capabilities through automated data collection and comparison algorithms.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9740593B2Comparative program execution through control of two or more debug sessions to automatically determine execution differences
Publication Date: 2017.08.22 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9740593B2 patent drawing
  • US9740593B2 patent drawing
  • US9740593B2 patent drawing

AI summary

According to embodiments of the present invention, machines, systems, methods and computer program products for controlling two or more remote sessions are provided. Two or more remote sessions are synchronized to control each session using a common interface. One or more executable commands are sent to each remote session at substantially the same time using the common interface to control operation of that remote session. Data generated by each remote session from executing the commands is received and analyzed to identify one or more differences in data generated by each remote session. The one or more identified differences in the data are displayed on the common interface. An indication may be provided regarding possible root causes of the differences in the data generated by each remote session. Each remote session includes a program debug session. A report comprising the one or more identified differences in the data may be generated.