Debugger Canvas Code Bubble Reuse for Control Flow

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debuggers lack the ability to reuse code bubbles, leading to overwhelming amounts of onscreen information that hinder software developers' understanding and conceptualization of program control flow during debugging.

Innovation Solution

Implementing a system where code bubbles from prior debugger sessions are reused and their context data compared across sessions to identify differences in application execution, allowing for a more manageable visualization of control flow on a debugger canvas.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If code bubbles are created for every execution session, then complete execution tracking is achieved, but the amount of onscreen information becomes overwhelming

Engineering Contradiction:
Improveexecution tracking completenessVSAvoidonscreen information complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system discards old code bubbles after a certain number of executions and recovers/reuses them in subsequent sessions. This allows the debugger to maintain execution tracking completeness while reducing onscreen information complexity by reusing previously executed code paths instead of displaying every execution separately.

Inventive Principle:
Principle #34Discarding and recovering

Solution Approach 2:

The system creates a simplified copy or representation of code bubbles from previous execution sessions that can be reused in current sessions. This copying approach maintains the essential execution tracking information while presenting a more manageable simplified view on screen.

Inventive Principle:
Principle #26Copying

2Loss of information

If all code bubbles from prior sessions are displayed, then execution history is preserved, but developer understanding of control flow is hindered

Engineering Contradiction:
Improveexecution history preservationVSAvoidcontrol flow understanding
Core Design Contradiction:
Loss of informationVSEase of operation

Solution Approach 1:

The system extracts and separates relevant execution history information from the complete set of code bubbles. By taking out only the essential control flow information and separating it from redundant details, the system preserves execution history while making control flow understanding more manageable for developers.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system segments the execution history into manageable portions, displaying only the most relevant code bubbles from prior sessions while grouping or filtering out less important information. This segmentation allows developers to understand control flow without being overwhelmed by all historical execution details.

Inventive Principle:
Principle #1Segmentation

3Device complexity

If code bubbles are reused across sessions, then onscreen information is reduced, but execution context accuracy may be compromised

Engineering Contradiction:
Improveonscreen information complexityVSAvoidexecution context accuracy
Core Design Contradiction:
Device complexityVSMeasurement precision

Solution Approach 1:

The system dynamically adapts code bubbles for reuse across execution sessions. Instead of static reuse, the system updates and modifies code bubble representations to maintain execution context accuracy while still reducing onscreen information complexity through reuse of recognizable patterns and structures.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8656361B2Debugging code visually on a canvas
Publication Date: 2014.02.18 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8656361B2 patent drawing
  • US8656361B2 patent drawing
  • US8656361B2 patent drawing

AI summary

A debugger session is initiated to monitor application execution. A debugger canvas corresponding to the debugger session is identified and displayed. The displayed debugger canvas includes one or more code bubbles created during a prior debugger session. The one or more code bubbles already present on the displayed debugger canvas are reused during the current debugger session. Accordingly, existing code bubbles and bubble sets are reused on a debugger canvas when entering a debug session, thus providing a more stable and manageable view for debugging an application in an integrated development environment. The code fragments in code bubbles on a debugger canvas can be analyzed, inspected, and edited during or after a debug session. Notations can also be added to a debugger canvas in the form of note bubbles and context data bubbles.