Cloud Debugger Breakpoint Capture for Distributed Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional debugger tools are ineffective for debugging computer software code in distributed systems like cloud environments, leading to increased time in identifying and fixing issues due to their inability to perform live debugging, as they require stopping the software process to debug.

Innovation Solution

A method and system for capturing breakpoint conditions in distributed systems, where a processing device generates breakpoint conditions based on user requests, transmits them to debuglets associated with software processes, and receives updates when the breakpoint is hit, allowing for minimal interruption of process execution and immediate resumption after capturing necessary information.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If conventional debugger tools are used to debug software processes, then debugging fidelity is improved by resolving symbols, variables and memory, but the software process must be stopped which reduces productivity

Engineering Contradiction:
Improvedebugging fidelityVSAvoidsoftware development productivity
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The debugger transitions from a static model where processes must be stopped to a dynamic model where multiple processes can run concurrently. The system dynamically manages process states, allowing some processes to continue execution while others are paused for debugging, enabling live debugging without complete process termination.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system segments the monolithic debugging approach into individual process-level debugging. Each software process can be independently debugged while others continue running, allowing selective pausing and resumption of specific processes rather than stopping the entire system.

Inventive Principle:
Principle #1Segmentation

2Loss of information

If developers collect monitoring and tracking information to debug distributed services, then debugging coverage is improved, but the time required increases from minutes to days which reduces productivity

Engineering Contradiction:
Improvedebugging information completenessVSAvoiddebugging time
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The system performs preliminary actions by pre-configuring breakpoint conditions and monitoring parameters before debugging sessions begin. This allows the debugger to immediately capture relevant information when breakpoints are hit, rather than requiring extensive post-hoc data collection and analysis.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements continuous feedback loops where debugging information is automatically collected, analyzed, and presented to developers in real-time. This feedback mechanism eliminates the need for manual data gathering and enables rapid iteration through the debugging process.

Inventive Principle:
Principle #23Feedback

3Reliability

If traditional debugger tools are used in cloud environments, then process-level debugging capability is maintained, but distributed service debugging capability is lost which reduces adaptability

Engineering Contradiction:
Improveprocess debugging reliabilityVSAvoiddistributed system adaptability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The debugger is designed with universal functionality that handles both traditional process-level debugging and modern distributed service debugging through a unified interface. The same tool can debug monolithic applications, microservices, serverless functions, and containerized applications without requiring different tools or approaches.

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

Solution Approach 2:

The system introduces intermediary components that bridge traditional debugger capabilities with cloud-native debugging requirements. These intermediaries enable the debugger to interact with distributed services, containers, and cloud platforms while maintaining the familiar process-level debugging model that developers already know.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9262300B1Debugging computer programming code in a cloud debugger environment
Publication Date: 2016.02.16 GOOGLE LLC
  • US9262300B1 patent drawing
  • US9262300B1 patent drawing
  • US9262300B1 patent drawing

AI summary

A method for capturing breakpoint information from a debuggee software process includes generating a breakpoint condition based upon a breakpoint request received from a user computing device corresponding to a user and transmitting the generated breakpoint condition to debuglets, each corresponding to a software process executed by a debuggee service. The debuggee service executes on a distributed system, and each debuglet translates the generated breakpoint condition to a physical breakpoint condition set to the respective software process. The method also includes receiving a request from one of the debuglets to update active breakpoint information captured by the debuglet upon the physical breakpoint condition being hit by one of the software processes and transmitting a notification from the processing device indicating the physical breakpoint condition being hit to the user computing device.