Type Introspection Database for C Error Logs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

C programming language applications generate unstructured error logs that lack type introspection, making it difficult for error logging systems to search, display, and export data structures effectively, as they cannot programmatically determine the name and type of data structure members at runtime.

Innovation Solution

An error logging system creates a type introspection database from compiled C programs, using debugging information in ELF files to generate structured error logs, enabling generic display, search, and share functions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If unstructured error logs are used in C programming applications, then the application can generate error logs with minimal overhead, but the error logging system cannot programmatically determine the name and type of data structure members at runtime

Engineering Contradiction:
Improveerror log generation efficiencyVSAvoidtype introspection information
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The system performs preliminary action by extracting type information from compiled C programs and storing it in a type information database before error logging is needed. This allows the error logging system to later use this pre-extracted type information to interpret unstructured error logs, resolving the contradiction between minimal generation overhead and the need for type introspection.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A type information database acts as an intermediary between the unstructured error logs and the error logging system. This database stores type information extracted from compiled programs, enabling the system to programmatically determine data structure member names and types at runtime without modifying the original C application's error log generation process.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If manual updates are required in the error logging system when C programs change, then the system can maintain accuracy, but the complexity and time required for maintenance increases

Engineering Contradiction:
Improveerror log accuracyVSAvoidmaintenance complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system implements self-service by automatically extracting type information from compiled C programs and updating the type information database without requiring manual intervention. When C programs change, the error logging system automatically re-extracts type information from the new compiled versions, maintaining accuracy while eliminating manual update complexity.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary extraction of type information from compiled programs and stores it in the type information database in advance. This pre-extracted information is then automatically used when error logs are generated, eliminating the need for manual updates when programs change and reducing maintenance complexity while maintaining reliability.

Inventive Principle:
Principle #10Preliminary action

3Use of energy by moving object

If unstructured error logs are used, then less processing is required during error generation, but searching and displaying data structures becomes difficult

Engineering Contradiction:
Improveprocessing energy during error generationVSAvoidease of searching and displaying
Core Design Contradiction:
Use of energy by moving objectVSEase of operation

Solution Approach 1:

A type information database serves as an intermediary that enables the error logging system to interpret unstructured error logs. By storing pre-extracted type information, the system maintains minimal processing during error generation while enabling efficient searching and displaying of data structures through the use of this intermediary type information.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary extraction and storage of type information in the type information database before error logging is needed. This allows unstructured error logs to be generated with minimal processing while the pre-stored type information enables easy searching and displaying of data structures when errors occur.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11740996B2Automatic creation of structured error logs from unstructured error logs
Publication Date: 2023.08.29 DELL PROD LP
  • US11740996B2 patent drawing
  • US11740996B2 patent drawing
  • US11740996B2 patent drawing

AI summary

An error logging system is provided that is configured to automatically create a type introspection database from a compiled application that was written using the C programming language. During execution of the application, if there is an error, the executing application will generate an unstructured error log which is passed to an error logging system. The type introspection database enables the error logging system to parse the unstructured error log to create a corresponding structured error log. The error logging system includes generic display, search, and share functions. The display function is configured to display the name, value, and type, of every attribute in each data structure. The search function provides a way to determine if the structured error log satisfies a selection criteria specified on one or more attributes of the data. The share function enables the error logging system to export the structured error logs.