Executable Control Flow Graph Debugging via Transition Breakpoints
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current debugging tools for executable control flow graphs lack the ability to efficiently interrupt and inspect the execution of control flow among functional modules, limiting the flexibility and effectiveness of debugging processes.
Innovation Solution
A method and system that allow specifying a position in the executable control flow graph to interrupt execution, providing data attributes of the execution environment, and enabling breakpoints to be set before, during, and after the execution of functional modules, allowing for detailed inspection and modification of parameters and environment variables.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If execution monitoring tools are used to monitor execution of hierarchical visual programs, then execution progress can be tracked, but the ability to interrupt and inspect control flow at specific positions is limited
Solution Approach 1:
The executable control flow graph is segmented into functional modules with defined transition points. Breakpoints can be set at these transition points to interrupt execution and inspect the execution environment, enabling precise control over monitoring and debugging locations.
Solution Approach 2:
A debugger is introduced as an intermediary tool between the executable control flow graph and the user. The debugger enables setting breakpoints at transition points, interrupting execution, and inspecting environment attributes, thereby providing the necessary interruption and inspection capabilities.
2Ease of operation
If graphical debugging environments are used to display graphical representations of application programs, then users can insert debugging tools without interacting with textual source code, but the ability to interrupt execution at specific transition points in control flow is not provided
Solution Approach 1:
The debugging system dynamically supports execution interruption at multiple positions within the control flow graph, including before functional modules execute, during execution, and after execution. This dynamic capability enhances the versatility of the graphical debugging environment.
Solution Approach 2:
Breakpoints can be set in advance at transition points in the control flow graph. When execution reaches these pre-set positions, the debugger automatically interrupts execution, allowing users to inspect the execution environment without manual intervention during runtime.
3Loss of information
If execution monitoring tools collect execution progress reports, then execution status can be tracked, but the flexibility to inspect and modify parameters at specific control flow positions is reduced
Solution Approach 1:
The debugger provides feedback mechanisms that allow users to inspect execution environment attributes at breakpoints. Users can view current parameter values, modify them, and continue execution, creating a feedback loop that enhances both monitoring and adaptability.
Solution Approach 2:
The system enables changing parameter values in the execution environment at breakpoint positions. Users can modify parameters such as environment variables or object states, and the changes take effect upon resuming execution, providing flexibility for debugging and testing.
Data Source
Figure 1A
Figure 1B
Figure 1C
AI summary
A computer-implemented method for debugging an executable control flow graph that specifies control flow among a plurality of functional modules, with the control flow being represented as transitions among the plurality of functional modules, the computer-implemented method including: specifying a position in the executable control flow graph at which execution of the executable control flow graph is to be interrupted; wherein the specified position represents a transition to a given functional module, a transition to a state in which contents of the given functional module are executed or a transition from the given functional module; starting execution of the executable control flow graph in an execution environment; and at a point of execution representing the specified position, interrupting execution of the executable control flow graph; and providing data representing one or more attributes of the execution environment in which the given functional module is being executed.