Volatile Memory Logging for Software Error Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for analyzing computer software errors in complex systems, such as multi-processor/multi-threaded environments, face challenges in reproducing exact conditions and efficiently managing resource-intensive logging, which limits their effectiveness in debugging and error analysis.

Innovation Solution

The approach involves creating and maintaining status data in volatile memory, which is then written to non-volatile storage upon detection of a specified condition, such as an error, allowing for efficient resource usage and detailed analysis of software behavior over time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If logging is performed continuously on non-volatile storage, then detailed error analysis information is available, but system resource consumption increases significantly

Engineering Contradiction:
Improveerror analysis informationVSAvoidsystem resource consumption
Core Design Contradiction:
Loss of informationVSUse of energy by moving object

Solution Approach 1:

The patent applies preliminary action by pre-allocating volatile memory buffers for logging status data before errors occur. The system prepares capture buffers in volatile memory that can quickly store error-related information without the overhead of immediate non-volatile storage operations. This allows the system to have logging capability ready in advance, ensuring information is captured when needed while avoiding continuous non-volatile storage operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses volatile memory as an intermediary between the error-generating process and non-volatile storage. Status data is first written to volatile memory buffers, which serve as a temporary holding area. Only when errors occur or buffers are full does the system transfer data to non-volatile storage. This intermediary approach reduces the frequency and overhead of non-volatile storage operations while preserving error analysis information.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If snapshot data is captured at error time, then storage space is minimized, but information about prior events is lost

Engineering Contradiction:
Improvestorage spaceVSAvoidprior event information
Core Design Contradiction:
Quantity of substanceVSLoss of information

Solution Approach 1:

The patent implements continuous logging of status data in volatile memory buffers, maintaining an ongoing record of system state and events. Unlike snapshot approaches that only capture at specific moments, this continuous recording ensures that all intermediate events, function invocations, and state changes are preserved in sequence. The buffers continuously accumulate data until error conditions trigger a save to non-volatile storage, ensuring no prior event information is lost.

Inventive Principle:
Principle #20Continuity of useful action

3Measurement precision

If software debugging tools are used manually, then behavior analysis over time is improved, but reproduction of actual operating conditions becomes difficult

Engineering Contradiction:
Improvebehavior analysis precisionVSAvoidreproduction capability
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The patent enables the system to automatically log and record its own operational status without requiring external debugging tools or manual intervention. The logging function operates autonomously, continuously capturing status data in volatile memory buffers and automatically managing buffer overflow conditions by saving to non-volatile storage. This self-service approach preserves the actual operating conditions and timing information, allowing accurate reproduction and analysis of error conditions without manual tool involvement.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS7802145B1Approach for facilitating analysis of computer software errors
Publication Date: 2010.09.21 CISCO TECHNOLOGY INC
  • US7802145B1 patent drawing
  • US7802145B1 patent drawing
  • US7802145B1 patent drawing

AI summary

An approach for facilitating the analysis of computer software errors generally involves logging status data in a volatile memory, such as a random access memory (RAM). The status data may indicate one or more attributes of a computing system or any of its components. The status data may be supplemented with additional status data to indicate attributes of the computing system and its components over time. In response to detecting a specified condition, the status data is written from the volatile memory to a non-volatile memory, for example, onto one or more disks. The status data stored on the non-volatile memory may then be used to analyze the behavior of the computer software over time leading up to the computer software error.