Trace Module Selective Program Data Recording

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional debugging techniques require capturing the entire program, leading to inefficiencies and user frustration, especially when dealing with large programs or multiple simultaneous traces, which can interrupt device operation and reduce performance.

Innovation Solution

A trace module records a subset of program data based on selected criteria, allowing for trimmed and sampled data to be processed, generating a trace file that reproduces the execution of code, thereby reducing memory and processing overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If conventional trace techniques capture the entire program, then complete program data is available for analysis, but device operation is interrupted and performance is reduced

Engineering Contradiction:
Improveprogram data completenessVSAvoiddevice operation performance
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The patent segments the program execution into multiple threads and selectively records only specific threads or portions of execution based on criteria (e.g., thread ID, function name, execution path). This allows the tracing system to capture relevant program data without recording the entire program, thereby reducing the processing overhead and minimizing interruptions to device operation while maintaining sufficient information for error analysis.

Inventive Principle:
Principle #1Segmentation

2Loss of information

If the entire program is recorded, then all execution details are captured, but memory and processing overhead increase significantly

Engineering Contradiction:
Improveexecution data completenessVSAvoiddata volume
Core Design Contradiction:
Loss of informationVSQuantity of substance

Solution Approach 1:

The patent extracts only the necessary portions of program execution data based on predefined criteria such as specific thread IDs, function names, or execution paths. The trace module selectively captures and stores only these targeted portions rather than the complete program execution, significantly reducing the volume of data that must be stored and processed while preserving the essential execution details needed for error identification.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If multiple programs are traced simultaneously, then comprehensive monitoring is achieved, but processing overhead and resource consumption increase

Engineering Contradiction:
Improvemonitoring coverageVSAvoidprocessing complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies local quality by enabling selective tracing of specific threads or program portions based on their individual characteristics and relevance. The trace module can identify and record only those threads or execution paths that meet specific criteria (e.g., threads associated with particular functions or exhibiting specific execution patterns), thereby maintaining comprehensive monitoring coverage for relevant areas while reducing processing complexity by excluding irrelevant program portions from simultaneous tracing.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10481999B2Partial process recording
Publication Date: 2019.11.19 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10481999B2 patent drawing
  • US10481999B2 patent drawing
  • US10481999B2 patent drawing

AI summary

Techniques for processing recorded program data are described. In implementations, a trace module in a computing device processes instructions of a recorded program and generates a trace file for program optimization. In implementations, the trace module records a subset of a received program for inclusion in the trace file. The computing device can also or instead be implemented to gather and initiate analysis of application data proactively and without user initiation.