Memory Error Detection via Block Indication Variables

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for detecting memory errors in software development are costly and time-consuming, often failing to detect errors until runtime, leading to potential fatal errors and significant losses.

Innovation Solution

A method that generates original block indication variables to track memory regions, performs checks using target block indication variables before memory access or freeing, and outputs detected errors, employing techniques like bit map coloring to identify out-of-bound and invalid memory access issues.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional manual debugging and testing methods are used to detect memory errors, then detection thoroughness may be improved, but development time and cost increase significantly

Engineering Contradiction:
Improvememory error detection capabilityVSAvoiddevelopment time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by inserting error detection code into the program source code during the programming stage. This detection code automatically checks for memory errors (such as null pointer access, out-of-bound access, and invalid memory freeing) before they occur at runtime. By performing error detection in advance through automated code instrumentation rather than manual debugging, the system achieves thorough memory error detection while significantly reducing development time and cost.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If traditional manual debugging methods are used, then detailed error analysis may be achieved, but the cost and time required increase substantially

Engineering Contradiction:
Improveerror detection accuracyVSAvoiddevelopment cost
Core Design Contradiction:
Measurement precisionVSEase of manufacture

Solution Approach 1:

The patent applies self-service by implementing automated error detection mechanisms that operate independently without requiring manual intervention. The detection code automatically identifies memory errors such as null pointer access, out-of-bound access, and invalid memory freeing operations. This automated approach maintains high error detection accuracy while eliminating the need for expensive and time-consuming manual debugging processes, thereby reducing development costs.

Inventive Principle:
Principle #25Self-service

3Productivity

If memory errors are not detected during programming, then development speed is maintained, but fatal errors occur at runtime causing significant losses

Engineering Contradiction:
Improvedevelopment speedVSAvoidruntime error prevention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by instrumenting the program source code with error detection capabilities during the programming phase. This allows memory errors to be detected and flagged before runtime execution, maintaining development speed while preventing fatal runtime errors. The detection code checks for various memory error conditions proactively, ensuring that issues are identified and can be corrected during development rather than causing losses at runtime.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7962832B2Method for detecting memory error
Publication Date: 2011.06.14 SURESOFT TECH
  • US7962832B2 patent drawing
  • US7962832B2 patent drawing
  • US7962832B2 patent drawing

AI summary

A method for easily detecting a memory error that may occur when a memory is accessed or an allocated memory is freed in the process of developing software is disclosed. The memory error detecting method includes: (a) generating an original block indication variable for indicating a starting memory block of a memory region allocated with respect to a variable included in a computer program; (b) detecting a memory error that may occur when the allocated memory region is accessed, by performing a certain operation (computing or arithmetic operation), before the allocated memory region is accessed, using a target block indication variable indicating memory block to be accessed in the allocated memory region and/or the original block indication variable; and (c) outputting information about a detected memory error.