Debug Event Handling for Remote Server Code

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging remote server code is challenging due to network limitations, such as unplanned disconnections and latency, and resource sharing issues among multiple users and threads, which hinder efficient bug detection and resolution.

Innovation Solution

Implementing a pause marker (semaphore or mutex) for session data structures to manage thread-safe control channels and using event-based messaging to reduce latency, allowing for efficient debugging by pausing and resuming execution of server code without concurrent pauses and conserving computing resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If debuggers are used to run code until breakpoint and pause execution, then bug detection capability is improved, but network latency and unplanned disconnections hinder efficient debugging

Engineering Contradiction:
Improvebug detection capabilityVSAvoiddebugging efficiency
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system establishes a persistent connection and pre-configures debug event handling mechanisms before debugging begins. The server prepares to receive and process debug events continuously, so when breakpoints are reached or disconnections occur, the pre-established mechanisms can immediately handle these events without waiting for reconnection or reconfiguration, thus reducing latency and maintaining debugging efficiency.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If server maintains session data structure to maintain state between requests, then client-server interaction state is preserved, but resource consumption increases

Engineering Contradiction:
Improvestate preservationVSAvoidcomputing resource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent extracts and isolates debug event handling from the main application logic. By separating debug event processing into distinct event handlers that operate independently on the server, the system can maintain session state for debugging without requiring the entire application state to be persisted. This extraction allows the server to maintain only the necessary debug-related state information, reducing overall resource consumption while preserving reliability for debug operations.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If firewalls prevent server from sending unsolicited messages to client, then network security is improved, but debug event communication is blocked

Engineering Contradiction:
Improvenetwork securityVSAvoiddebug event transmission
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The system uses the existing HTTP request-response protocol as an intermediary mechanism. Instead of sending unsolicited messages directly from server to client (which firewalls block), the server embeds debug event information within responses to client requests. The client's debug event handler extracts and processes these events from the legitimate HTTP responses, allowing debug communication to pass through firewalls while maintaining network security.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If multiple users and threads share server resources, then user concurrency is improved, but thread-safe control becomes complex

Engineering Contradiction:
Improveuser concurrencyVSAvoidthread-safe control complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the server architecture into distinct components with clear boundaries: application code, debug event handlers, and session management. Each component operates independently with well-defined interfaces. Debug event handlers are separate from main application logic, and each handler processes events independently. This segmentation reduces thread-safe control complexity by minimizing shared state and reducing the need for complex synchronization mechanisms, while still supporting multiple users and threads.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10983896B2Debug event handling
Publication Date: 2021.04.20 SERVICENOW INC
  • US10983896B2 patent drawing
  • US10983896B2 patent drawing
  • US10983896B2 patent drawing

AI summary

Systems and methods are disclosed for debug event handling. For example, methods may include receiving a request from a client device. Methods may include, responsive to receiving the request, identifying a set of instructions to be executed, wherein the set of instructions is associated with at least one breakpoint. Methods may include initiating execution of the set of instructions. Methods may include pausing execution of the set of instructions when an instruction of the set of instructions associated with a breakpoint is reached. Methods may include, after the breakpoint is reached and before a new request is received from the client device, transmitting, to the client device, a message that indicates that a breakpoint has been reached. Methods may include terminating execution of the set of instructions responsive to determining that a debugger interface on the client device is no longer available to control execution of the set of instructions.