Execution Layer Debugger for Block-Level Software Tracing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging software applications with undefined execution orders of business objects is inefficient, as traditional line-by-line debugging methods fail to accurately track the active business object, leading to time-consuming and potentially incorrect assumptions about the application's execution path.

Innovation Solution

A debugging system that determines an execution plan for blocks in a software application, allowing block-level actions such as step into, step over, step out, and continue commands, enabling debugging at a higher semantic level by defining an execution plan and interacting with both the execution and coding layers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional line-by-line debugging is used on source code, then the debugger can execute code step by step, but it becomes very hard to follow execution and determine which business object is currently being executed when execution order is undefined

Engineering Contradiction:
Improveability to determine current execution locationVSAvoidtime to determine active business object
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent introduces an execution layer as an intermediary between the coding layer and business layer. This execution layer maintains execution context information including the current business object being executed, allowing the debugger to directly query execution location without manually tracing through source code lines. The execution layer acts as a mediator that translates high-level business object execution states into debuggable information.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If the debugger operates on source code at the coding layer, then it can provide detailed line-by-line execution control, but it becomes inefficient and error-prone when business objects have different execution orders determined at runtime

Engineering Contradiction:
Improveease of debuggingVSAvoidaccuracy of execution path tracking
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent adds a new dimension to debugging by introducing the execution layer that operates above the traditional coding layer. Instead of debugging solely at the source code line level, the system now provides execution context information at the business object level. This dimensional addition allows users to debug based on business logic flow rather than code structure, improving both ease of operation and reliability simultaneously.

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

3Adaptability or versatility

If the execution order of business objects is determined at runtime based on user actions, then the application can handle different use cases flexibly, but the debugger cannot predict or efficiently track execution flow

Engineering Contradiction:
Improveability to handle different use casesVSAvoidcomplexity of tracking execution flow
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The execution layer implements feedback mechanisms by continuously monitoring and recording the actual execution path of business objects at runtime. It maintains execution context information that reflects the current state of business object execution, providing real-time feedback to the debugger about which business object is active. This feedback system allows the debugger to adapt to runtime execution changes without requiring complex manual tracking.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8516307B2Execution layer debugger
Publication Date: 2013.08.20 SAP SE
  • US8516307B2 patent drawing
  • US8516307B2 patent drawing
  • US8516307B2 patent drawing

AI summary

In one embodiment, a method includes determining an execution plan of a plurality of blocks in an application. The execution plan defines a structure for execution of blocks in the plurality of blocks. A debugging command is received in a debugger. An active block in the structure defined in the execution plan. A computing device performs a block level action on the active block.