Program State Definition Debugger for Unfamiliar Code Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging unfamiliar software programs is challenging because programmers lack knowledge of variable names and code layout, making it difficult to set breakpoints effectively.

Innovation Solution

A program state definition is used to stop the execution of a program when target values are present in its variables, allowing analysis without requiring specific breakpoints at lines of code, variables, or functions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional breakpoints are used to halt program execution, then the programmer can examine the program state at specific locations, but the programmer must have prior knowledge of variable names and code layout to set breakpoints effectively

Engineering Contradiction:
Improveprogram state detection accuracyVSAvoidbreakpoint setting difficulty
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The debugger automatically monitors and compares program variable values against target values without requiring programmer intervention to set breakpoints. The system self-identifies when problematic states occur by continuously evaluating whether current variable values match the defined target values, eliminating the need for manual breakpoint placement based on code structure knowledge.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The invention shifts from position-based breakpoints (requiring knowledge of line numbers, function names, variable names) to value-based breakpoints (using only target variable values). This parameter change allows programmers to specify debugging criteria in terms of problematic output values rather than code structure, making the debugging process accessible without prior program familiarity.

Inventive Principle:
Principle #35Parameter changes

2Measurement precision

If watchpoints are used to monitor specific variable values, then execution halts when variable values change, but the programmer must know the name and location of the variable to set the watchpoint

Engineering Contradiction:
Improvevariable value monitoring accuracyVSAvoidprogram structure knowledge requirement
Core Design Contradiction:
Measurement precisionVSLoss of information

Solution Approach 1:

The program state definition serves multiple functions: it defines target values for comparison, identifies problematic states, and triggers breakpoints automatically. This universal approach replaces the need for separate watchpoint settings for each variable, allowing monitoring of program state based on output values rather than requiring knowledge of internal variable structures.

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

3Ease of operation

If the debugger monitors all variable values throughout the program, then it can detect problematic states without prior knowledge, but the complexity of tracking and comparing all variables increases

Engineering Contradiction:
Improvedebugging accessibilityVSAvoiddebugger monitoring complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The invention extracts only the essential information needed for debugging - the target values that define problematic states - and ignores the rest of the program structure. By focusing monitoring efforts only on whether variable values match target values rather than tracking all variables comprehensively, the system reduces complexity while maintaining effectiveness.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10108527B2Debugging using program state definitions
Publication Date: 2018.10.23 CA TECH INC
  • US10108527B2 patent drawing
  • US10108527B2 patent drawing
  • US10108527B2 patent drawing

AI summary

A program state definition comprises target values that correspond to problematic or unexpected output of a program. A debugger compares the target values of the program state definition to variable values of a program and stops execution of a program at a point where all target values are contained in variables of the program. By stopping execution of a program, the debugger allows a programmer to analyze the program at that point. Unlike a breakpoint, a program state definition is not tied to a specific line of code, variable, or function but, rather, has a scope of an entire program or a specified section of a program.