Crash Analysis Framework Using Typeinfo Data Extraction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional systems face challenges in performing non-trivial crash analysis due to the logistical issue of requiring concurrent access to both memory dump data and debug symbols, which are often geographically disparate, leading to high storage and transmission costs, as well as security concerns.
Innovation Solution
A framework that generates a subset of application data structure information, known as typeinfo data, which is smaller and more secure, allowing for crash report generation at the customer site without the need for full debug symbols, with the provider site using debug symbols to annotate the report later.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If full debug symbols are transmitted to customer site for crash analysis, then crash diagnosis capability is improved, but storage costs and transmission costs increase significantly
Solution Approach 1:
The patent extracts only the essential type information from the complete debug symbols that is necessary for crash analysis. Instead of transmitting all debug symbols, the system identifies and transmits only the typeinfo data needed to interpret crash dump information, significantly reducing data volume while maintaining diagnostic capability.
Solution Approach 2:
The patent segments the debug symbols into two parts: typeinfo data (transmitted to customer site) and full debug symbols (retained at provider site). This segmentation allows crash analysis to be performed locally with minimal data while enabling detailed analysis to be completed by the provider using the full symbol set.
2Reliability
If full debug symbols are stored at customer site, then crash analysis is enabled, but security risks and storage burden increase
Solution Approach 1:
The patent extracts only the non-sensitive type information from the debug symbols and transmits it to the customer site. The complete debug symbols containing potentially sensitive information remain securely stored at the provider site, eliminating security risks associated with storing full symbol sets at customer locations while still enabling crash analysis.
3Measurement precision
If memory dump and debug symbols are co-located for analysis, then crash diagnosis accuracy is improved, but logistical complexity and costs increase
Solution Approach 1:
The patent introduces typeinfo data as an intermediary between the crash dump and the full debug symbols. This intermediary contains the essential type information needed to interpret crash dumps, allowing local analysis without requiring the presence of both complete debug symbols and crash dumps at the same location, thus simplifying logistics while maintaining diagnostic accuracy.
4Quantity of substance
If minimal data is transmitted for crash analysis, then transmission costs are reduced, but diagnostic capability may be insufficient
Solution Approach 1:
The patent applies partial action by transmitting only the specific type information subset that is sufficient for crash analysis rather than all debug symbol data. The typeinfo data includes precisely the information needed to interpret crash dumps (type definitions, structure layouts, etc.) without including redundant or unnecessary data, achieving adequate diagnostic capability with minimal transmission.
Data Source
AI summary
Distributed architectures that can generate a crash report without concurrent access to debug symbols and a memory dump. Besides grabbing generic information from a memory dump, which most debuggers provide (e.g., call stack traces for all threads), developer-provided scripts can grab application-specific details such as tables of open protocol client connections and so-forth. This extraction can take place at a customer site where a crash occurred and can proceed without the use of debug symbols. The extraction can generate a crash report which can be sent back from the field. Once in the hands of engineering (e.g., at a provider site where debug symbols are extant but the memory dump is not), debug symbols can then be used in an annotation phase to fill in missing details (e.g., the precise source files and line numbers corresponding to call stack traces) without access to the original crash dump.


