Virtual Address Segmentation for Software Entity Debugging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional memory management mechanisms in computer systems are inefficient in identifying faulty code segments during runtime errors, especially in complex environments, due to the structure of logical addresses not reflecting the architecture of computer programs, making debugging difficult and resource-intensive.

Innovation Solution

A method for creating a virtual address for a 'daughter' software entity that includes a series of fields allowing retrieval of the mother software entity's fields, along with a unique field, enabling precise identification of faulty software entities and dynamic access rights management, allowing for easy debugging and isolation of application groups within a single operating system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If conventional segmenting and paging mechanisms are used for memory management, then memory can be organized into segments and pages, but the logical address structure does not reflect the program architecture, making error identification difficult

Engineering Contradiction:
Improvememory management structureVSAvoiderror identification difficulty
Core Design Contradiction:
Device complexityVSDifficulty of detecting and measuring

Solution Approach 1:

The virtual address is segmented into multiple fields including a software entity identification field that directly reflects the program's hierarchical architecture (processes, threads, functions, variables). This segmentation allows each level of the program structure to be represented in the address, enabling precise error identification by examining the relevant fields in the address when an error occurs.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If debugging tools record execution traces to identify faulty code segments, then error detection capability is improved, but trace memory requirements become large and expensive

Engineering Contradiction:
Improveerror detection precisionVSAvoidtrace memory volume
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The essential debugging information (software entity identification) is extracted directly from the virtual address structure itself, rather than requiring separate trace memory to record execution paths. The address fields contain the necessary identification information, eliminating the need for large trace memory while maintaining precise error detection capability.

Inventive Principle:
Principle #2Taking out (Extraction)

3Ease of operation

If static virtual address definition is used during compilation, then debugging becomes simpler, but the solution cannot adapt to complex environments where applications and libraries are not known a priori

Engineering Contradiction:
Improvedebugging easeVSAvoidenvironment adaptability
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The virtual address fields are defined dynamically at runtime rather than statically at compilation. The software entity identification fields are created and populated as programs and libraries are loaded into memory, allowing the system to adapt to any combination of applications and libraries without requiring prior knowledge, while still providing structured addresses that facilitate debugging.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9092326B2Method of creating a virtual address for a daughter software entity related to the context of a mother software entity
Publication Date: 2015.07.28 ALVEOL TECH
  • US9092326B2 patent drawing
  • US9092326B2 patent drawing
  • US9092326B2 patent drawing

AI summary

A process for creates a virtual address for a software entity called a “daughter” belonging to the context of a software entity called the “mother.” This virtual address includes a series of fields allowing retrieval of the series of fields of the virtual address of the mother software entity and a field unique in the context of the mother software entity. Each series of fields is associated with a single software entity which it defines completely.