Core Dump Stack Trace via Function Fingerprints

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for generating stack traces during program termination require debugging symbols, which are large and often not available at the time of termination, leading to slow downloads and potential security risks when uploading core dumps.

Innovation Solution

A core dump-level stack trace mechanism that generates a fingerprint of functions from a recorded program state without using debugging symbols, allowing for identification of duplicate termination causes on both client and server sides, thus avoiding the need for large symbol downloads and sensitive data transmission.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If debugging symbols are downloaded to generate stack traces, then stack trace generation is enabled, but network bandwidth is consumed and time is lost during download

Engineering Contradiction:
Improvestack trace generation capabilityVSAvoiddownload time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system pre-generates and stores function fingerprints in the binary executable file during the compilation or linking phase, before the program runs. This preliminary action eliminates the need to download debugging symbols later, as the essential identification data is already embedded in the executable.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention extracts only the essential function identification information (fingerprints) from the full debugging symbols and embeds it directly into the binary. This extraction approach retains the necessary functionality for stack trace generation while removing the bulk of the symbol data that would consume network bandwidth and download time.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If core dumps are uploaded for analysis, then termination analysis is enabled, but sensitive information may be transmitted

Engineering Contradiction:
Improvetermination analysis capabilityVSAvoidsecurity risk from sensitive data transmission
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The system extracts only the function fingerprint information from the core dump and transmits this minimal data for analysis. This extraction eliminates sensitive information from the transmission while retaining the essential data needed for termination cause identification, thus resolving the security concern.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of transmitting the actual core dump containing sensitive data, the system creates and transmits a simplified copy containing only function fingerprints. This copy serves the analysis purpose without exposing sensitive information that would be present in a full core dump.

Inventive Principle:
Principle #26Copying

3Productivity

If debugging symbols are distributed with program binaries, then stack trace generation is immediate, but the distribution package size increases significantly

Engineering Contradiction:
Improvestack trace generation speedVSAvoiddistribution package size
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The invention extracts only the essential function identification data (fingerprints) from the complete debugging symbols and embeds it in the binary. This extraction reduces the size of distributed packages from megabytes or gigabytes to much smaller embedded structures, while maintaining immediate stack trace generation capability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The function fingerprints embedded in the binary serve multiple purposes: they enable stack trace generation, support termination analysis, and provide function identification without requiring separate debugging symbol files. This multi-functionality eliminates the need for large separate symbol distributions.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9098627B2Providing a core dump-level stack trace
Publication Date: 2015.08.04 RED HAT INC
  • US9098627B2 patent drawing
  • US9098627B2 patent drawing
  • US9098627B2 patent drawing

AI summary

A system and a method for providing a core dump-level stack trace. In one example, the method includes receiving, by a processing device, a recorded state of a program, the recorded state including a base address of the program and a stack frame including an executable address for a call instruction of a function of the program; determining, by the processing device, a list of functions in view of the recorded state of the program, and creating, by the processing device, a stack trace in view of the list of functions without using debugging symbols.