Runtime Application Debugger Stateful Copy

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current debugging techniques for software applications, such as tracing instructions and debuggers, are inefficient and impractical for production environments due to resource consumption, performance overhead, and dependency on application stability, making it difficult to diagnose and reproduce errors, especially synchronization and timing issues.

Innovation Solution

An application debugger that generates a stateful copy of application objects in a debugger memory heap at runtime, allowing independent diagnosis and manipulation without requiring debug events or stable application processes, and enabling optimized execution without memory or performance impacts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Difficulty of detecting and measuring

If tracing instructions are embedded in the application to provide trace information at runtime, then diagnosis capability is improved, but application size increases and runtime performance deteriorates

Engineering Contradiction:
Improvediagnosis capabilityVSAvoidruntime performance
Core Design Contradiction:
Difficulty of detecting and measuringVSProductivity

Solution Approach 1:

The system separates the diagnosis functionality from the application code by using an external debugger process that attaches to the running application. The application is divided into the production code (running without tracing overhead) and the debugging infrastructure (external debugger that provides diagnosis capabilities). This segmentation allows the application to run at full performance while the external debugger provides trace information and diagnosis capabilities.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary debugger process that acts as a mediator between the application and the developer. The debugger attaches to the application process and intercepts/debugs calls to provide trace information without requiring tracing instructions to be embedded in the application code. This intermediary approach enables diagnosis capability while maintaining application performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Difficulty of detecting and measuring

If tracing instructions are embedded in the application to generate trace information, then diagnosis capability is improved, but application size increases

Engineering Contradiction:
Improvediagnosis capabilityVSAvoidapplication size
Core Design Contradiction:
Difficulty of detecting and measuringVSQuantity of substance

Solution Approach 1:

The patent extracts the tracing and diagnosis functionality from the application code itself and places it in an external debugger process. Instead of embedding tracing instructions within the application, the system uses an external debugger that attaches to the running application and provides diagnosis capabilities. This extraction eliminates the need to increase application size while maintaining full diagnosis capability.

Inventive Principle:
Principle #2Taking out (Extraction)

3Difficulty of detecting and measuring

If the application includes debug logic to provide debug events, then debugging capability is improved, but memory consumption increases and runtime performance deteriorates

Engineering Contradiction:
Improvedebugging capabilityVSAvoidmemory consumption
Core Design Contradiction:
Difficulty of detecting and measuringVSUse of energy by moving object

Solution Approach 1:

The patent uses an intermediary debugger process that attaches to the application and provides debugging capabilities without requiring the application to include debug logic. The external debugger intercepts and debugs calls to provide trace information and manipulate application objects, eliminating the need for the application to allocate additional memory for debug logic while maintaining full debugging capability.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Difficulty of detecting and measuring

If the application includes debug logic to provide debug events, then debugging capability is improved, but runtime performance deteriorates

Engineering Contradiction:
Improvedebugging capabilityVSAvoidruntime performance
Core Design Contradiction:
Difficulty of detecting and measuringVSProductivity

Solution Approach 1:

The system segments the debugging functionality into an external process separate from the application. The application runs as pure production code without any debug logic embedded, maintaining optimal runtime performance. The external debugger process provides all debugging capabilities by attaching to the application and using interception techniques, thus separating the performance-critical application code from the debugging infrastructure.

Inventive Principle:
Principle #1Segmentation

5Reliability

If the application process becomes unstable (e.g., synchronization deadlock or complete failure), then the application stops executing, but the ability to generate trace information ceases

Engineering Contradiction:
Improveapplication stabilityVSAvoiddiagnosis capability
Core Design Contradiction:
ReliabilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent implements a mechanism where the debugger can create stateful copies of application objects before the application process becomes unstable. The debugger attaches to the running application and continuously maintains copies of critical objects in a stable state, even if the original application process crashes or enters a deadlock. This beforehand cushioning ensures that diagnostic information is preserved and can be analyzed even after the application fails.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Solution Approach 2:

The system uses copying to create stateful replicas of application objects in the debugger process. When the application process becomes unstable, these copies remain intact in the external debugger, allowing continued generation and analysis of trace information. The debugger can manipulate these copies to diagnose issues without being affected by the instability of the original application process.

Inventive Principle:
Principle #26Copying

6Difficulty of detecting and measuring

If a debugger is used to step through the application and examine data at runtime, then diagnosis capability is improved, but the application occupies more memory and execution speed decreases

Engineering Contradiction:
Improvediagnosis capabilityVSAvoidmemory occupation
Core Design Contradiction:
Difficulty of detecting and measuringVSArea of stationary object

Solution Approach 1:

The patent uses an intermediary debugger process that attaches to the application and provides diagnosis capabilities without requiring the application itself to occupy additional memory. The external debugger handles all memory-intensive debugging operations (such as maintaining object states and generating trace information) in its own address space, allowing the application to run with minimal memory overhead while full debugging capability is available through the intermediary debugger.

Inventive Principle:
Principle #24Intermediary (Mediator)

7Difficulty of detecting and measuring

If the application includes debug logic, then debugging capability is improved, but timing characteristics of the application change during execution

Engineering Contradiction:
Improvedebugging capabilityVSAvoidtiming characteristics
Core Design Contradiction:
Difficulty of detecting and measuringVSDuration of action of moving object

Solution Approach 1:

The system segments the debugging functionality into an external process, allowing the application to execute with its original timing characteristics unchanged. The external debugger can observe and measure timing behavior without introducing debug logic that would alter the application's execution flow. This segmentation ensures that timing-critical applications can be debugged without affecting their temporal behavior.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7757217B2Debugging an application process at runtime
Publication Date: 2010.07.13 X CORP
  • US7757217B2 patent drawing
  • US7757217B2 patent drawing
  • US7757217B2 patent drawing

AI summary

The present invention accordingly provides an application debugger running in a process of a computer system comprising: a debugger memory heap; and an object copier for generating a stateful copy in the debugger memory heap of an application object at runtime wherein the application object is stored in an application memory heap of an application process.