Diagnostic Stackframe Buffer for Runtime Error Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional methods for diagnosing errors in computer systems are inadequate as they do not provide a comprehensive code path leading up to the error and often require lengthy diagnostic tests that can alter execution, potentially preventing the error from occurring.

Innovation Solution

A system comprising a historical event buffer, an event buffer, a buffer similarity engine, and a diagnostic engine that saves program elements from the program stack, determines similarity with historical execution data, and requests diagnostic information when a threshold is exceeded, allowing targeted and efficient error diagnosis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If a conventional trace is configured for the duration of a diagnostic test, then comprehensive diagnostic information can be obtained, but the test duration becomes extremely long (hours or days) and the trace can alter execution behavior

Engineering Contradiction:
Improvecode path informationVSAvoiddiagnostic test duration
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The system performs preliminary actions by continuously saving program elements from the program stack into an event buffer during normal execution without interruption. This preliminary data collection ensures that when an error occurs, the complete code path information is already captured in the event buffer, eliminating the need for lengthy post-error tracing and allowing immediate diagnostic analysis

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates a copy of the program execution data by saving program elements into an event buffer alongside the original program stack. This copying mechanism preserves the complete execution history without interfering with the original program flow, enabling comprehensive diagnostic information to be obtained without extending test duration or altering execution behavior

Inventive Principle:
Principle #26Copying

2Loss of information

If a conventional trace is configured for diagnostic testing, then diagnostic information is captured, but the trace changes execution behavior and can prevent errors from occurring

Engineering Contradiction:
Improveerror diagnostic informationVSAvoiderror reproduction reliability
Core Design Contradiction:
Loss of informationVSReliability

Solution Approach 1:

The system creates a non-intrusive copy of program elements in an event buffer that runs parallel to the original execution. This copying approach captures all diagnostic information without modifying the original program execution flow, ensuring that errors occur naturally and can be reliably reproduced and analyzed

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The event buffer acts as an intermediary that captures program execution data without being part of the critical execution path. By using this intermediate storage mechanism, the system obtains comprehensive diagnostic information while maintaining the original execution behavior unchanged, thus preserving error reproduction reliability

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of information

If comprehensive tracing is enabled to capture complete code path, then diagnostic information is improved, but system performance and execution speed deteriorate

Engineering Contradiction:
Improvecode path informationVSAvoidprogram execution speed
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The system implements a balanced approach by saving program elements into an event buffer at selective points during execution rather than continuously logging all operations. This partial action captures sufficient code path information for comprehensive diagnostics while avoiding the performance penalty of excessive logging, thus maintaining program execution speed

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system performs preliminary saving of program elements during normal execution at a reduced overhead level, preparing diagnostic data in advance without significantly impacting performance. When errors occur, this pre-captured information provides comprehensive code path details without requiring high-performance continuous tracing during critical execution periods

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10606685B2Diagnostic stackframe buffer
Publication Date: 2020.03.31 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10606685B2 patent drawing
  • US10606685B2 patent drawing
  • US10606685B2 patent drawing

AI summary

Diagnostic information for a program execution is provided, where the program is executable in a machine having a program stack for individual program elements. At least one program element is saved from the program stack into an event buffer as the at least one program element is executed. A historical event buffer associated with at least one runtime error is loaded, and a similarity between the event buffer and the historical event buffer is determined. It is requested that at least one type of diagnostic information be provided with the execution of the program in the event buffer when the determined similarity exceeds a threshold similarity.