Code Entity Invocation Difference Presentation via Trace Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging software applications is time-consuming due to the difficulty in reproducing and localizing source code bugs, as existing debugging tools lack effective methods to present differences between code entity invocations based on trace file data.

Innovation Solution

A method that utilizes machine learning on trace file data to classify and present runtime differences between code entity invocations by grouping them into families based on attributes such as return values, exceptions, input parameters, and execution patterns, and visually displays these differences through a user interface.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If developers use conventional debugging methods to reproduce and localize source code bugs, then debugging accuracy can be maintained, but debugging time increases significantly

Engineering Contradiction:
Improvebug localization accuracyVSAvoiddebugging time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs preliminary actions by recording execution traces during normal program运行, capturing detailed runtime information before debugging is needed. This pre-captured data enables rapid analysis without requiring time-consuming reproduction of bugs during the debugging phase

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates copies of execution traces and invocations, storing them in trace files for later analysis. Developers can analyze these copied execution records without re-running the program, significantly reducing debugging time while maintaining accurate bug localization

Inventive Principle:
Principle #26Copying

2Measurement precision

If developers manually analyze multiple code entity invocations to identify runtime differences, then detailed analysis can be performed, but the complexity of the debugging process increases

Engineering Contradiction:
Improveruntime difference detection accuracyVSAvoiddebugging process complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system performs self-service by automatically comparing multiple code entity invocations and identifying runtime differences without requiring manual intervention. The differential analysis is performed automatically on the recorded trace data, reducing debugging process complexity while maintaining detailed analysis capability

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system replaces manual mechanical analysis with automated computational analysis. Machine learning models and algorithms automatically process trace files, compare invocations, and identify differences, substituting the complex manual debugging process with an automated system that maintains high detection accuracy

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Measurement precision

If comprehensive trace data is collected for all code entities, then complete analysis coverage is achieved, but data processing complexity increases

Engineering Contradiction:
Improveanalysis coverageVSAvoiddata processing complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system extracts only the essential and relevant attributes from comprehensive trace data, such as return values, exception information, and key execution parameters. This selective extraction maintains complete analysis coverage while reducing data processing complexity by focusing on the most significant differences between invocations

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentEP3622404B1Presenting differences between code entity invocations
Publication Date: 2022.02.23 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3622404B1 patent drawingFigure 1
  • EP3622404B1 patent drawingFigure 2A
  • EP3622404B1 patent drawingFigure 2B

AI summary

Presenting differences between code entity invocations includes identifying a plurality of families of invocations of a code entity. Each family is defined based upon a plurality of attributes that identify a class of runtime behavior of the code entity. First attribute(s) of a first family are identified. These first attribute(s) substantially contributed to classifying a first class of invocations of the code entity within the first family. Similarly, second attribute(s) of a second family are identified. These second attribute(s) substantially contributed to classifying a second class of invocations of the code entity within the second family. Differences between at least two invocations of the code entity are presented, based on differences between the one or more first attributes and the one or more second attributes.