Non-Stop Production Debugging via Dynamic Control Flow Visualization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging in production environments is challenging due to the disruption caused by attaching live debuggers, which stop process execution, and logging methods provide incomplete and performance-impacting control flow information that is not local to specific function invocations.

Innovation Solution

A diagnostic tool that dynamically instruments a running application to collect historical control flow information without interrupting execution, allowing for non-stopping breakpoints and exception handling, enabling visualization of control flow data specific to function invocations and providing detailed insights into program execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If a live debugger is attached to a running application to collect control flow information, then debugging capability is improved, but process execution is interrupted

Engineering Contradiction:
Improvedebugging capabilityVSAvoidprocess execution continuity
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent applies preliminary action by pre-instrumenting the application code with debugging hooks and metadata before production deployment. This allows the debugger to collect control flow information by reading pre-prepared data structures rather than inserting breakpoints that halt execution, thus maintaining both debugging capability and execution continuity

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a virtual copy of the control flow information through data flow graphs and execution path representations that mirror the actual program execution. This virtual model allows debugging operations to be performed on the copy without affecting the original running process, resolving the contradiction between debugging access and execution continuity

Inventive Principle:
Principle #26Copying

2Loss of information

If traditional logging methods are used to track control flow, then some execution information is captured, but performance is degraded and information is not local to specific function invocations

Engineering Contradiction:
Improvecontrol flow information completenessVSAvoidapplication performance
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The patent segments control flow information collection by function invocation, creating separate data flow graphs for each function call. This segmentation allows the system to collect detailed local control flow information without globally instrumenting all code paths, reducing overhead while maintaining information completeness for specific functions

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements local quality by providing tailored control flow information specific to each function invocation context. The data flow graphs capture execution paths, variables, and control decisions locally relevant to that specific function call, avoiding the performance penalty of global logging while ensuring complete local information capture

Inventive Principle:
Principle #3Local quality

3Loss of information

If comprehensive control flow data is collected for all function invocations, then debugging information completeness is improved, but data processing complexity increases

Engineering Contradiction:
Improvedebugging information completenessVSAvoiddata processing complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent changes the parameter of data representation from traditional stack traces and log files to data flow graphs with structured nodes and edges. This parameter change organizes control flow information in a hierarchical, visual format that reduces processing complexity while maintaining complete debugging information, as the graph structure naturally captures execution paths and variable dependencies

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP3213217B1Historical control flow visualization in production diagnostics
Publication Date: 2020.06.24 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3213217B1 patent drawingFigure 1
  • EP3213217B1 patent drawingFigure 2a
  • EP3213217B1 patent drawingFigure 2b

AI summary

A diagnostic tool can dynamically instrument an application to collect program control flow information using one or more non-stopping production breakpoints. Analyzed program control flow information can be displayed. Dynamic code rewriting techniques can be used to change the production software without deploying new source code. The information collected at the non-stopping breakpoint can include the actual control flow that an instance of the production application took to reach the breakpoint in addition to information about the data. The analyzed control flow information can be visualized in a diagnostic tool allowing a user to see the path an execution of the program took to arrive at a particular breakpoint.