Parallel Application Debugging for Code Path Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional debugging techniques require sequential testing of code paths, which is time-consuming and error-prone, especially during interactive debugging sessions.

Innovation Solution

Enabling parallel execution of applications during debugging by duplicating the running application for each unique variable value and allowing independent execution of these duplicates, thereby allowing developers to test multiple code paths simultaneously.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If sequential testing of code paths is used during debugging, then the debugging process can be performed with simple tools and procedures, but the time required for debugging increases significantly

Engineering Contradiction:
Improvedebugging timeVSAvoiddebugging system complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent segments the debugging process by creating separate parallel execution paths for different code paths. Each code path is tested in its own independent execution context, allowing simultaneous debugging of multiple paths without interfering with each other. This segmentation enables parallel testing while maintaining manageable complexity through structured execution contexts.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a parallel execution dimension to traditional sequential debugging. By transitioning from single-threaded sequential execution to multi-threaded parallel execution, the system can test multiple code paths simultaneously. This dimensional change from 1D (sequential) to ND (parallel) execution space dramatically reduces debugging time while the debugger coordinates these parallel dimensions.

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

2Productivity

If sequential execution is used for testing multiple code paths, then the execution environment remains simple and controlled, but the number of test cases that can be executed increases time consumption

Engineering Contradiction:
Improvetesting throughputVSAvoidtesting time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent merges multiple sequential test executions into a single parallel testing operation. By combining multiple code path tests into concurrent execution contexts, the system achieves higher testing throughput without proportionally increasing total testing time. The debugger coordinates and synchronizes these merged parallel executions to maintain test integrity.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent ensures continuous useful action by executing multiple test cases simultaneously rather than sequentially. While one code path is being tested, other code paths are tested in parallel, eliminating idle waiting time between tests. This continuous parallel execution maximizes productivity by keeping all testing resources actively utilized throughout the testing process.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS12332768B2Parallel execution during application debugging
Publication Date: 2025.06.17 AMAZON TECH INC
  • US12332768B2 patent drawing
  • US12332768B2 patent drawing
  • US12332768B2 patent drawing

AI summary

An application debugger may define multiple unique initial states of execution for an application on behalf of a client. These unique initial states may include unique sets of application variable values. The application debugger may then create respective application runtimes initialized with the respective sets of application variable values. Then, the execution runtimes may be independently executed to a termination condition that may include a defined set of breakpoints, a normal termination or an abnormal termination. The application debugger may then receive termination state information from the respective execution runtimes, provide additional analysis of these termination states and report results to the client.