Automated Call Stack Reconstruction from Corrupted Crash Dumps
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
2Measurement precision
If comprehensive data collection is performed to handle corruption, then analysis accuracy improves, but processing time and complexity increase
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
Data Source
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.


