Address-to-Symbol Translation via Pre-Generated Mapping Files

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for address-to-symbol translation of stack traces in software programs are inefficient, particularly as the number of stack traces and builds increases, leading to decreased performance due to the need for utilities to search symbol files for each memory address, resulting in slow debugging and analysis.

Innovation Solution

An address-translation system that collects stack traces, selects appropriate instances based on attributes, uses a binary store as a primary source for symbol mappings, and employs caching and parallel processing to improve translation speed, with fallback sources and in-memory caching to enhance efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If a utility searches a symbol file for each memory address in a stack trace, then accurate symbol translation is achieved, but performance decreases as the number of stack traces and builds increases

Engineering Contradiction:
Improvesymbol translation accuracyVSAvoidtranslation speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent pre-generates mapping files that contain pre-computed mappings between memory addresses and symbols for each build. This preliminary action eliminates the need for utilities to search symbol files during translation, as all mappings are already prepared and stored in an optimized format for rapid lookup.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates copy files that contain copies of symbol mappings in a format optimized for quick access. Instead of searching the original symbol files during translation, the system uses these pre-copied mapping files which contain only the necessary address-to-symbol mappings in a compact, searchable format.

Inventive Principle:
Principle #26Copying

2Reliability

If the number of stack traces and builds increases, then more comprehensive debugging coverage is achieved, but translation performance decreases

Engineering Contradiction:
Improvedebugging coverageVSAvoidtranslation speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the translation process by creating separate mapping files for each build and organizing them in a hierarchical directory structure. This segmentation allows the system to handle multiple builds independently and efficiently, selecting and loading only the relevant mapping files needed for the current translation task, rather than processing all builds simultaneously.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system pre-generates and stores mapping files for each build in advance, so when multiple stack traces need translation across multiple builds, the mappings are already prepared and can be rapidly retrieved without performing the expensive symbol file searching operation at translation time.

Inventive Principle:
Principle #10Preliminary action

3Loss of information

If symbol files are searched for each memory address, then complete symbol information is obtained, but the process becomes time-consuming

Engineering Contradiction:
Improvesymbol information completenessVSAvoidtranslation time
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The patent extracts only the necessary address-to-symbol mapping information from the comprehensive symbol files and stores it in separate, optimized mapping files. This extraction process removes unnecessary data and structures from the symbol files, creating lightweight mapping files that contain only the essential translation information needed for stack trace analysis.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system creates compact copy files that contain copied and condensed versions of the symbol mappings. These copy files retain complete symbol information accuracy but are formatted for extremely fast lookup operations, eliminating the time-consuming search process while maintaining information completeness.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9959215B2Efficient address-to-symbol translation of stack traces in software programs
Publication Date: 2018.05.01 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9959215B2 patent drawing
  • US9959215B2 patent drawing
  • US9959215B2 patent drawing

AI summary

The disclosed embodiments provide a system for processing data. During operation, the system obtains an attribute of a stack trace of a software program. Next, the system uses the attribute to select an address-translation instance from a set of address-translation instances for processing the stack trace. The system then provides the stack trace to the selected address-translation instance for use in translating a set of memory addresses in the stack trace into a set of symbols of instructions stored at the memory addresses.