Call Stack Hashing for Crash Pattern Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging software errors without accurate symbols is challenging due to the inability to analyze and identify patterns in error information, as symbol files are not publicly available for most software applications, limiting the understanding and analysis of application crashes.

Innovation Solution

A method that evaluates memory dumps to identify call stacks related to application failures, creates hashes of these call stacks, and adds them to a database for trend analysis, using concatenations of module names, function names, and function offsets to improve identification of problem code, even when symbols are not available.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If symbol files are not made publicly available, then software company intellectual property is protected, but the ability to analyze and understand application crashes is limited

Engineering Contradiction:
Improvecrash analysis capabilityVSAvoiderror information usability
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The patent creates hash copies of call stack data structures that preserve the essential identifying features of crashes while removing the need for original symbol files. These hash representations enable crash pattern recognition and analysis without requiring access to the actual symbol information, thus maintaining IP protection while enabling analysis capability.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent introduces hash values as an intermediary representation between the original symbol-containing call stacks and the analysis system. These hashes serve as mediators that capture crash signatures without exposing the underlying symbol information, allowing crash analysis to proceed through the intermediary hash comparisons rather than requiring direct access to protected symbols.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If detailed symbol information is included in crash data, then debugging precision is improved, but data transmission and storage requirements increase

Engineering Contradiction:
Improveproblem code identification accuracyVSAvoiddata volume
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential identifying features of call stacks by converting them into hash values. This extraction process removes unnecessary detailed symbol information while preserving the critical crash signature characteristics needed for pattern recognition, significantly reducing data volume while maintaining identification accuracy.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent transforms the call stack data from its original detailed form into a different parameter representation (hash values). This parameter transformation maintains the essential identifying characteristics needed for crash analysis while compressing the data into a more compact form suitable for efficient storage and transmission.

Inventive Principle:
Principle #35Parameter changes

3Measurement precision

If comprehensive symbol data is collected for all crashes, then pattern recognition accuracy is improved, but processing time and computational resources increase

Engineering Contradiction:
Improvecrash pattern recognition accuracyVSAvoiddebugging time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary hashing of call stack data at the point of crash collection, creating compact hash representations before the data needs to be analyzed for patterns. This preliminary action prepares the data in an optimized format that enables faster subsequent pattern recognition and comparison operations, reducing the computational burden during actual crash analysis.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates simplified hash copies of the original crash data that retain the essential pattern recognition characteristics. These copies enable rapid comparison and pattern matching operations without requiring processing of the full detailed symbol information, significantly reducing computational time while maintaining pattern recognition accuracy.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS7823006B2Analyzing problem signatures
Publication Date: 2010.10.26 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7823006B2 patent drawing
  • US7823006B2 patent drawing
  • US7823006B2 patent drawing

AI summary

A method of analyzing problem data from a computer application is disclosed. The method evaluates a memory dump, identifying call stacks within the memory dump that are related to application failures, creates a hash of the identified call stack and adds the hash to a database. The database may then be evaluated to look for trends in the error data such as whether the same call stack is causing problems.