Source Code Execution Visualization via Symbolic Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software developers face challenges in understanding the execution behavior of complex source code due to its length and complexity, making it difficult to determine if specific lines of code are executed and which branches are taken during execution, often requiring time-consuming manual methods like debugging or colleague interactions.

Innovation Solution

A system that visualizes execution behavior by analyzing source code to create control flow diagrams and uses symbolic execution to generate execution traces, allowing developers to interactively select start and end points for testing, and constrain symbolic execution to focus on specific code paths, thereby providing graphical representations of actual execution paths.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If developers manually inspect log data or use breakpoint debuggers to monitor software execution behavior, then they can obtain execution information, but the process becomes time-consuming and error-prone

Engineering Contradiction:
Improveexecution behavior accuracyVSAvoidtime to analyze execution
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent creates a visual copy of the control flow diagram that mirrors the actual execution path taken by the software. Instead of manually tracing through complex code or interpreting log data, the system generates a graphical representation that copies the execution trajectory, making it immediately visible and easy to understand. This visual copy allows developers to quickly comprehend execution behavior without time-consuming manual analysis.

Inventive Principle:
Principle #26Copying

2Loss of information

If developers use conventional debugging methods to determine if specific lines of code are executed, then they can obtain execution information, but the complexity of the source code makes the process frustrating and inefficient

Engineering Contradiction:
Improveexecution path visibilityVSAvoidease of analyzing execution
Core Design Contradiction:
Loss of informationVSEase of operation

Solution Approach 1:

The patent transforms the execution path information from a one-dimensional textual representation (log data or code lines) into a two-dimensional visual representation (control flow diagram). By adding the spatial dimension of graphical display, the system makes execution paths immediately visible and intuitive. Developers can see the entire control flow structure and the actual execution trajectory simultaneously, eliminating the need to mentally parse complex code structures.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Measurement precision

If developers manually trace execution through complex source code with many branches, then they can understand execution behavior, but the process is error-prone and time-consuming

Engineering Contradiction:
Improveexecution path accuracyVSAvoiddeveloper efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent introduces a visual intermediary layer (the control flow diagram with highlighted execution paths) between the complex source code and the developer's understanding. This intermediary automatically generated by the system translates complex multi-branch execution logic into a simple visual trajectory. The intermediary handles the complexity of tracking multiple branches and conditions, presenting only the relevant execution path to the developer, thereby eliminating manual tracing errors and improving productivity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8453106B2Graphical user interface for exploring source code execution behavior
Publication Date: 2013.05.28 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8453106B2 patent drawing
  • US8453106B2 patent drawing
  • US8453106B2 patent drawing

AI summary

Described herein are interactive graphical user interfaces that visualize execution behavior of source code together with theoretical execution behavior of the source code together with the source code itself. Structure of the source code is analyzed to determine theoretical execution behavior of the source code. Thereafter, symbolic execution of the source code is undertaken to output an execution trace. The execution trace is shown together with the theoretical execution behavior of the source code.