Trace Recording Compression via Address Value Pattern Extraction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging software applications is time-consuming due to the large size of trace files required for 'time travel' debugging, which consumes significant storage resources and affects performance.

Innovation Solution

The method involves identifying patterns in memory addresses and values to reduce storage by recording only flag bits and omitting redundant data, allowing for efficient compression and storage of trace files.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If full memory addresses and values are recorded in trace files, then complete debugging information is available, but storage requirements increase significantly

Engineering Contradiction:
Improvedebugging information completenessVSAvoidstorage requirements
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts and records only the essential debugging information needed for effective debugging, rather than storing complete memory addresses and values. By identifying and recording only the minimal necessary data elements, the system maintains debugging reliability while dramatically reducing storage requirements.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent changes the parameter representation by recording memory information in a compressed format that captures the essential debugging characteristics without storing complete address and value data. This parameter transformation enables the system to maintain debugging capability while reducing the quantity of stored information.

Inventive Principle:
Principle #35Parameter changes

2Measurement precision

If large trace files are used for comprehensive debugging data, then debugging accuracy is improved, but writing and reading performance deteriorate

Engineering Contradiction:
Improvedebugging accuracyVSAvoidtrace writing and reading speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent extracts only the critical debugging information needed for accurate debugging, eliminating redundant data that would slow down writing and reading operations. This extraction maintains debugging accuracy while improving trace file processing performance.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial action by recording only the necessary portion of memory information required for debugging, rather than storing complete memory states. This partial recording approach maintains sufficient debugging accuracy while significantly reducing the time required to write and read trace files.

Inventive Principle:
Principle #16Partial or excessive action

3Adaptability or versatility

If complete memory states are stored, then debugging capability is enhanced, but memory usage increases

Engineering Contradiction:
Improvedebugging capabilityVSAvoidmemory usage
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent extracts and stores only the essential memory information required for debugging operations, rather than maintaining complete memory states. This extraction preserves the necessary debugging capability while reducing the memory resources required to store trace information.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent transforms the memory representation by storing compressed memory information that captures debugging-relevant characteristics without maintaining full memory state data. This parameter change enables the system to preserve debugging versatility while reducing memory consumption.

Inventive Principle:
Principle #35Parameter changes

4Reliability

If full trace data is communicated, then debugging information completeness is maintained, but bandwidth requirements increase

Engineering Contradiction:
Improvedebugging information completenessVSAvoidbandwidth requirements
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts and transmits only the essential debugging information from memory traces, eliminating redundant data that would consume bandwidth. This extraction maintains the completeness of debugging information while reducing the bandwidth required to communicate trace files.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent changes the data representation by encoding memory information in a compressed format that preserves debugging completeness while reducing the amount of data that must be communicated over the network or storage interface.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10540250B2Reducing storage requirements for storing memory addresses and values
Publication Date: 2020.01.21 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10540250B2 patent drawing
  • US10540250B2 patent drawing
  • US10540250B2 patent drawing

AI summary

Recording a memory address includes identifying a first subset of high bits of the memory address, determining that a first value of the first subset equals a second value of a group of high bits already recorded, recording a second subset of low bits of the memory address while refraining from recording the first subset, and setting one or more flag bits to indicate that only the second subset were recorded. Also, recording a memory value includes identifying a plurality of groups of consecutive bits of the memory value, determining that a first group contains bits having a defined pattern and that a second group contains bits lacking the defined pattern, recording the second group while refraining from recording at least a portion of the first group, and setting one or more flag bits to indicate that the first group was not recorded.