Automated Call Stack Reconstruction from Corrupted Crash Dumps

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging application software crashes on embedded devices is challenging due to the difficulty in replicating crashes and the reliance on accurate stack memory and register data, which can be incomplete or corrupted, making it hard to reconstruct the call stack.

Innovation Solution

A systematic automated debugging tool analyzes crash dump memory data using compiler and linker-generated information, such as stack addresses and DWARF debug data, to generate call stack listings without relying on unreliable register data, and incorporates trace data to enhance and filter stack listings.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If standard debugging approaches are used that rely on register data, then call stack generation is straightforward, but the process fails when register information is incomplete or corrupted

Engineering Contradiction:
Improvecall stack generation reliabilityVSAvoiddebugging process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary automated analysis tool that acts as a mediator between the crash dump data and the debugging process. This tool systematically analyzes stack memory regions, correlates multiple data sources (DWARF info, trace data, stack memory), and reconstructs call stacks without relying on potentially corrupted register data, thereby resolving the contradiction between reliability and complexity

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent applies preliminary action by collecting and preparing multiple data sources (DWARF debug information, trace data, stack memory regions) before the actual call stack reconstruction process. This pre-processing and correlation of data enables the system to handle corrupted register information effectively, improving reliability without significantly increasing operational complexity

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If comprehensive data collection is performed to handle corruption, then analysis accuracy improves, but processing time and complexity increase

Engineering Contradiction:
Improvecrash analysis accuracyVSAvoiddebugging time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent implements partial action by selectively collecting and correlating only the necessary data sources (DWARF information, trace data, and relevant stack memory regions) required for call stack reconstruction. This targeted approach achieves sufficient analysis accuracy without the excessive time cost of analyzing all possible data, resolving the contradiction between precision and time loss

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8732681B2Stack analysis for post mortem analysis
Publication Date: 2014.05.20 TEXAS INSTRUMENTS INC
  • US8732681B2 patent drawing
  • US8732681B2 patent drawing
  • US8732681B2 patent drawing

AI summary

A debug tool that generates a call stack listing by analyzing the crash memory dump data without relying on register data values. The tool uses information gathered by the compiler and linker when the program was compiled and linked, including the stack's size and location in memory. By examining the stack location in the crash memory dump image in conjunction with the debugging data generated by the compiler and the linker and any existing trace data, the last valid frame may be reconstructed indicating the location of the crash.