Visual Debugger for Declarative Data-Flow Applications

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging complex declarative code in large computer systems is challenging due to the difficulty in identifying the code responsible for runtime artifacts, requiring manual examination and instrumentation, which is time-consuming and inefficient.

Innovation Solution

A debugging framework that automatically correlates lines of code with instantiated runtime objects, allowing for visual representation and user interaction to highlight corresponding code and objects, enabling live application debugging without stopping the application, and allowing users to add breakpoints and watches directly to runtime objects.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If manual examination and instrumentation are used to identify code responsible for runtime artifacts, then debugging accuracy can be achieved, but debugging time and operational complexity increase significantly

Engineering Contradiction:
Improvedebugging accuracyVSAvoiddebugging time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs preliminary correlation between code elements and runtime artifacts before debugging begins. Breakpoints and tracers are pre-placed in the code, and the mapping between code and runtime objects is established in advance, so that when a runtime artifact is examined, the corresponding code is immediately identified without manual search or instrumentation during the debugging process itself

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates a visual copy or representation of the mapping between code elements and runtime artifacts. This visual map allows developers to see the correspondence between code and runtime behavior without manually tracing through the code, effectively copying the relationship information into a readable format that can be examined directly

Inventive Principle:
Principle #26Copying

2Measurement precision

If manual examination of large amounts of code is performed to isolate bugs, then debugging accuracy can be achieved, but productivity and ease of operation deteriorate

Engineering Contradiction:
Improvebug identification accuracyVSAvoiddebugging efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The system segments the large codebase into manageable units and maps each segment to its corresponding runtime artifacts. By dividing the code into smaller, traceable portions and establishing explicit mappings, the system allows developers to focus on specific segments rather than examining entire codebases, thereby maintaining accuracy while improving productivity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system introduces an intermediary visual mapping layer between the code and the runtime artifacts. This intermediary representation shows the relationships without requiring direct code examination, acting as a mediator that translates complex code structures into an easily analyzable format that maintains precision while boosting efficiency

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If breakpoints and tracers are placed in code to isolate bugs, then debugging accuracy can be achieved, but device complexity and ease of operation worsen

Engineering Contradiction:
Improvebug isolation accuracyVSAvoiddebugging process complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system performs self-service by automatically establishing and maintaining the mappings between code elements and runtime artifacts without requiring manual placement of breakpoints or tracers. The correlation is generated and updated automatically by the system itself, reducing the complexity of the debugging process while maintaining the ability to isolate bugs accurately

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS7979847B2Visual debugger for declarative/data-flow applications
Publication Date: 2011.07.12 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7979847B2 patent drawing
  • US7979847B2 patent drawing
  • US7979847B2 patent drawing

AI summary

A framework is implemented. The framework is configured to execute an application within the framework, the application includes instantiated runtime objects. New instantiated runtime objects may be created and instantiated runtime objects destroyed while the application is executing. The framework is further configured to implement a debugger within the framework. At the debugger, instantiated runtime objects are correlated with lines of code of the application. Some embodiments allow users to debug executing applications. This can be accomplished by a user interacting with the executing application which then causes indications in the debugger or interacting with the debugger and which causes indications on instantiated runtime objects in the application.