Preemptive Crash Data Capture for Application Diagnostics

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional crash dumps generated by operating systems are limited in diagnostic information as they are created post-crash, lacking context about the application's state prior to failure, making it difficult for developers to identify and fix issues.

Innovation Solution

Implementing preemptive crash data capture techniques that include a crash prediction module to determine if a failure will result in a crash, allowing for the collection of context information before a crash occurs, which is then included in the crash dump if a crash happens, along with a pre-crash data collection module to gather relevant information.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If crash dumps are generated post-crash by the operating system, then the crash dump can be created with available diagnostic information, but the diagnostic information is limited and lacks context about the application's state prior to failure

Engineering Contradiction:
Improvecontext informationVSAvoidtime for data collection
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The system performs preliminary data collection by implementing a crash prediction module that monitors application failures and collects context information before the crash actually occurs. When a failure is detected, the system proactively gathers diagnostic data including application state, memory contents, and call stacks, storing this information in advance so that it is available immediately when a crash occurs, eliminating the need for post-crash data collection.

Inventive Principle:
Principle #10Preliminary action

2Loss of information

If preemptive data collection is performed for all failures, then detailed context information is captured, but system overhead increases due to unnecessary data collection in recovery scenarios

Engineering Contradiction:
Improvecontext informationVSAvoidsystem overhead
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The system implements a feedback mechanism where the crash prediction module analyzes collected failure data and application behavior patterns to determine whether a failure will result in a crash or be successfully handled. Based on this feedback, the system intelligently decides whether to continue monitoring and collect data or to stop and allow normal operation, thereby reducing unnecessary overhead while ensuring detailed information is captured when crashes are likely.

Inventive Principle:
Principle #23Feedback

3Measurement precision

If context information is collected before crash, then detailed diagnostic data is available in the crash dump, but additional system resources and processing are required

Engineering Contradiction:
Improvediagnostic information detailVSAvoidsystem resources
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The system performs preliminary data collection by implementing a crash prediction module that monitors application failures and collects context information before the crash actually occurs. When a failure is detected, the system proactively gathers diagnostic data including application state, memory contents, and call stacks, storing this information in advance so that it is available immediately when a crash occurs, eliminating the need for post-crash data collection.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements a feedback mechanism where the crash prediction module analyzes collected failure data and application behavior patterns to determine whether a failure will result in a crash or be successfully handled. Based on this feedback, the system intelligently decides whether to continue monitoring and collect data or to stop and allow normal operation, thereby reducing unnecessary overhead while ensuring detailed information is captured when crashes are likely.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10783027B2Preemptive crash data capture
Publication Date: 2020.09.22 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10783027B2 patent drawing
  • US10783027B2 patent drawing
  • US10783027B2 patent drawing

AI summary

Techniques for implementing preemptive crash data capture are provided. According to one set of embodiments, a computer system can determine that a failure has occurred with respect to an application running on the computer system and, in response to the failure, collect context information pertaining to the application's state at the time of the failure. If the failure subsequently causes the application to crash, the computer system can generate a crash dump that includes the collected context information.