Debugger-Controlled Watchpoint Sanitizer for Embedded Memory Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing sanitizers used for desktop and server hardware are not suitable for embedded systems due to resource constraints, leading to undetected bugs and potential interference with the execution of computer programs, particularly in safety-critical systems like vehicle control devices.

Innovation Solution

A method for testing computer programs on embedded systems using a debugger-controlled sanitizer that sets watchpoints on uninitialized memory locations, removing them upon write access, and indicating errors upon read access, without requiring instrumentation or emulation, allowing for effective memory monitoring.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional sanitizers are used for memory monitoring on embedded systems, then comprehensive bug detection is achieved, but resource consumption increases and execution is interfered with

Engineering Contradiction:
Improvebug detection capabilityVSAvoidresource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent extracts the essential memory monitoring functionality from traditional sanitizers and implements it through debugger-controlled watchpoints. Instead of using full sanitizer implementations that consume significant resources, only the critical watchpoint mechanism is retained and controlled by the debugger, reducing resource overhead while maintaining bug detection capability for uninitialized memory reads.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial action by selectively monitoring only uninitialized memory regions through watchpoints rather than implementing comprehensive sanitizer coverage. The debugger controls which memory locations are monitored and when watchpoints are set or removed, applying monitoring effort only where and when needed, thus reducing overall resource consumption while maintaining effective detection of critical bugs.

Inventive Principle:
Principle #16Partial or excessive action

2Reliability

If code instrumentation or emulation is used for memory monitoring, then comprehensive testing is achieved, but device complexity and resource requirements increase

Engineering Contradiction:
Improvememory monitoring capabilityVSAvoidinstrumentation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces the debugger as an intermediary between the computer program and the memory monitoring function. Instead of instrumenting the code or using emulation, the debugger acts as a mediator that sets and controls watchpoints on uninitialized memory regions. This approach leverages the existing debugger infrastructure to provide memory monitoring without adding instrumentation complexity or requiring emulation overhead.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If watchpoints are set on all uninitialized memory locations, then complete coverage is achieved, but memory locations are permanently blocked and false positives increase

Engineering Contradiction:
Improvememory coverageVSAvoidfalse positive rate
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The patent applies dynamics by making watchpoint placement and removal dynamic rather than static. Watchpoints are set on uninitialized memory regions when needed and automatically removed when the memory is written to or when no longer needed. This dynamic approach ensures complete coverage of uninitialized memory at any given time while preventing permanent blocking of memory locations and reducing false positives by adapting to the actual execution state.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent implements feedback mechanisms where the debugger monitors memory access patterns and execution state to dynamically adjust watchpoint placement. When memory is written to or initialized, the system receives feedback and removes watchpoints from those locations. This feedback-driven approach ensures accurate tracking of uninitialized memory regions, maintaining complete coverage while preventing false positives from monitoring already-initialized memory.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS20240403203A1Method for testing a computer program
Publication Date: 2024.12.05 ROBERT BOSCH GMBH
  • US20240403203A1 patent drawing
  • US20240403203A1 patent drawing

AI summary

A method for testing a computer program. The method includes ascertaining uninitialized variables of the test program, setting watchpoints to memory locations reserved for the uninitialized variables, and executing the computer program. The method also includes, for each set watchpoint: removing the watchpoint if the memory location to which the watchpoint is set is written to; and indicating that the computer program has an error if the watchpoint is triggered by a read access.