Collaborative Debugging via Synchronized GUI Position Tracking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current debugging systems lack effective collaboration tools for multiple users to simultaneously debug computer programs, failing to adequately account for the multi-dimensional aspects of program execution and code positioning, which hinders efficient identification and resolution of bugs.

Innovation Solution

A system and method that utilize two graphical user interfaces on separate or the same device to display temporal and code positioning data, allowing users to collaborate by viewing each other's temporal and code positions, with a server managing debugging data and providing access to a debugger, enabling real-time feedback and comment sharing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple users debug a program simultaneously using separate debugger instances, then collaborative debugging capability is improved, but synchronization of user positions (temporal and code location) deteriorates

Engineering Contradiction:
Improvecollaborative debugging capabilityVSAvoidsynchronization complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a server as an intermediary that centralizes the storage and management of debugging data, including temporal positions and code locations of multiple users. This mediator coordinates all user sessions, allowing them to view and navigate the program execution together without direct peer-to-peer synchronization complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent combines multiple debugger instances and their associated user positions into a single unified debugging session managed by the server. This merging allows all users to share the same debugging context, temporal position, and code location information, enabling collaboration while maintaining synchronization through a single source of truth.

Inventive Principle:
Principle #5Merging (Combining)

2Device complexity

If a single debugger instance is used for collaborative debugging, then synchronization of user positions is improved, but user access control and security deteriorate

Engineering Contradiction:
Improvesynchronization simplicityVSAvoidaccess control security
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent segments user access control by assigning different permission levels to different users of the same debugger instance. The server can grant or revoke access rights for specific users, allowing fine-grained security control while maintaining a unified debugging session for synchronization.

Inventive Principle:
Principle #1Segmentation

3Speed

If debugger data is stored locally on each user device, then access speed is improved, but data consistency and collaboration capability deteriorate

Engineering Contradiction:
Improvedata access speedVSAvoidcollaboration capability
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The server acts as an intermediary that stores debugging data centrally while allowing users to access it remotely. This approach balances data consistency (single source of truth) with collaboration capability (multiple access points), using network communication to bridge the speed gap between local and centralized storage.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10990509B2Debugging systems
Publication Date: 2021.04.27 UNDO
  • US10990509B2 patent drawing
  • US10990509B2 patent drawing
  • US10990509B2 patent drawing

AI summary

There is provided a system for debugging a computer program comprising computer readable program code. The system comprises, debugging data indicating an execution of the computer program, first and second user devices, configured to display a first and second graphical user interface respectively, each graphical user interface comprising data indicative of an execution of a debugger processing the debugging data. The first and second graphical user interfaces are each configured to display data indicative of a temporal position of the execution of the computer program associated with the other one of said graphical user interfaces, and display data indicative of a position within the computer readable program code associated with the other one of said graphical user interfaces.