Library Encapsulation Module for Embedded Crash Isolation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging and isolating crashes in embedded information handling systems, particularly in multi-threaded applications, is challenging due to limitations in persistent storage for core dump files and the absence of a debugger in embedded environments.

Innovation Solution

A method involving a library encapsulation module with function clones that store and manage process IDs and function IDs using a mutex-protected table, allowing error detection and logging without core dump files or a debugger, enabling effective error isolation and logging in embedded systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Difficulty of detecting and measuring

If core dump files and debuggers are used for crash isolation, then debugging capability is improved, but persistent storage requirements and system complexity increase

Engineering Contradiction:
Improvecrash detection capabilityVSAvoidpersistent storage requirements
Core Design Contradiction:
Difficulty of detecting and measuringVSQuantity of substance

Solution Approach 1:

The patent extracts the essential debugging information (process ID, function ID, source code location) from the complex core dump file format and stores only these critical elements in a lightweight table structure. This extraction approach maintains crash isolation capability while dramatically reducing storage requirements by eliminating redundant data and complex file structures.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent uses a temporary in-memory table structure that is created during execution and discarded after crash analysis. This disposable approach replaces persistent core dump files with a transient data structure that requires minimal storage space and can be easily cleared after use, eliminating the need for long-term storage of crash data.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

2Difficulty of detecting and measuring

If core dump files and debuggers are used for crash isolation, then debugging capability is improved, but system complexity increases

Engineering Contradiction:
Improvecrash isolation capabilityVSAvoiddebugging system complexity
Core Design Contradiction:
Difficulty of detecting and measuringVSDevice complexity

Solution Approach 1:

The patent segments the crash isolation process into distinct components: a library encapsulation module that instruments shared library functions, a table structure that stores crash information, and a signal handler that processes crashes. This segmentation allows each component to be independently implemented and maintained, reducing overall system complexity while maintaining comprehensive crash isolation capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a library encapsulation module as an intermediary layer between shared library functions and the application. This mediator instruments function calls and stores information in a table without requiring full debugger integration, thereby simplifying the system architecture by replacing complex debugger dependencies with a lightweight intermediary mechanism.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If function clones with mutex-protected tables are used, then error logging precision is improved, but device complexity increases

Engineering Contradiction:
Improveerror location precisionVSAvoidlibrary encapsulation module complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent creates a universal library encapsulation module that can instrument multiple shared library functions through a standardized interface. The function clone mechanism and table structure serve multiple purposes: tracking function calls, storing crash information, and enabling precise error location. This multi-functionality reduces the need for separate instrumentation code for each function, thereby managing complexity while maintaining high precision.

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

4Adaptability or versatility

If debugging is performed in embedded environments with concurrent incremental development, then development flexibility is improved, but crash isolation difficulty increases

Engineering Contradiction:
Improveconcurrent development flexibilityVSAvoidcrash isolation difficulty
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent performs preliminary instrumentation of shared library functions during the compilation and linking phases, before the application runs. The library encapsulation module and table structure are prepared in advance, establishing tracking mechanisms that automatically capture crash information during execution. This preliminary action enables crash isolation in concurrently developed multi-threaded applications without requiring runtime modifications or complex debugging setup.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7870443B2Method to isolate crash of an embedded multi-threaded application to a shared library call without core dump files or debugger
Publication Date: 2011.01.11 DELL PROD LP
  • US7870443B2 patent drawing
  • US7870443B2 patent drawing
  • US7870443B2 patent drawing

AI summary

The present disclosure relates in general to embedded information handling systems, and more particularly to systems and methods for isolating a crash of an embedded multi-threaded application to a shared library call in embedded information handling systems.