Post-Processing Memory Debugging via Selective Log Extraction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging and analyzing event-driven simulation and emulation systems for electronics is challenging due to incorrect interactions between hardware and embedded software, especially in post-processing scenarios where APIs for memory value inspection are unavailable, and brute force methods are inefficient and storage-intensive.

Innovation Solution

A computer-implemented method and system that captures log messages in a post-processing environment by generating a complete view of memory state, writing log messages whenever a designated message logging function is reached, and presenting message information in a user interface, using processor models to retrieve parameters and determine callers, with features like breakpoints and pseudo-comments to minimize system impact.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If a brute force solution stops the simulation at each tick of time to dump the entire state of memory, then complete memory inspection is achieved, but efficiency deteriorates and storage requirements increase

Engineering Contradiction:
Improvememory inspection completenessVSAvoiddebugging efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent extracts only the necessary debugging information (log messages from specific functions) from the complete memory state, rather than dumping entire memory contents. This selective extraction achieves sufficient debugging capability while dramatically reducing storage requirements and processing overhead.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements logging functions within the embedded software that proactively record relevant information during normal execution. This preliminary action captures debugging data without interrupting the simulation flow, eliminating the need for stopping the simulation at each tick.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If a brute force solution stops the simulation at each tick of time to dump the entire state of memory, then complete memory inspection is achieved, but storage requirements increase

Engineering Contradiction:
Improvememory inspection completenessVSAvoidstorage requirements
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent extracts only the necessary debugging information (log messages from specific functions) from the complete memory state, rather than dumping entire memory contents. This selective extraction achieves sufficient debugging capability while dramatically reducing storage requirements and processing overhead.

Inventive Principle:
Principle #2Taking out (Extraction)

3Ease of operation

If APIs are used to access memory values at run-time, then memory inspection is enabled, but the simulation environment requires special APIs that may not exist in post-processing scenarios

Engineering Contradiction:
Improvememory access capabilityVSAvoidenvironment compatibility
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent creates a log message copy of the relevant debugging information during normal simulation execution. This copy can be accessed and analyzed in post-processing environments without requiring special APIs or modifying the original simulation environment, thus achieving broad compatibility.

Inventive Principle:
Principle #26Copying

4Loss of information

If logging functions are implemented in embedded software, then debugging information is captured, but system complexity increases

Engineering Contradiction:
Improvedebugging information availabilityVSAvoidsystem complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent implements a universal logging mechanism that can be applied to any embedded software without modification. The logging function serves multiple purposes: capturing debugging information, maintaining system state, and enabling post-processing analysis, thus justifying the added complexity through multi-functionality.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10176078B1Debugging process
Publication Date: 2019.01.08 CADENCE DESIGN SYST INC
  • US10176078B1 patent drawing
  • US10176078B1 patent drawing
  • US10176078B1 patent drawing

AI summary

The present disclosure relates to a system and method for capturing log messages in a post-processing debugging environment. Embodiments may include receiving a processor model associated with an electronic design and generating, using one or more processors and the processor model, a complete view of the state of the memory. Embodiments may further include writing, using one or more processors and the processor model, a log message whenever a designated message logging function is reached within the complete view of the state of the memory.