Code Overlay Debugging for Source Code Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current debugging methods, particularly those using conditional compilation, face challenges such as complexity in managing debug options, preserving changes, and incorporating unwanted debug code, which complicates the debugging process and source code management.

Innovation Solution

The method employs code overlays to modify and test software applications without altering the original source code, allowing for the creation, application, and reversal of debugging modifications, enabling efficient debugging and testing while preserving the source code's integrity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conditional compilation is used for debugging, then debugging functionality can be incorporated into the application, but the complexity of managing debug options and source code increases

Engineering Contradiction:
Improvedebugging functionalityVSAvoidcomplexity of managing debug options
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the code base into original code and overlay code that can be independently managed. Debugging modifications are separated into distinct overlay files rather than being mixed with original source code, allowing independent creation, application, and removal of debugging changes without affecting the original code structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces code overlays as an intermediary layer between the original source code and the compiled application. These overlays act as a mediator that can be applied or removed without directly modifying the original source code, simplifying the management of debugging options.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If debugging modifications are applied to source code, then debugging capabilities are enhanced, but the original source code integrity is compromised

Engineering Contradiction:
Improvedebugging capabilitiesVSAvoidsource code integrity
Core Design Contradiction:
ReliabilityVSStability of the object's composition

Solution Approach 1:

The patent creates code overlays as copies or additions to the original source code rather than directly modifying it. The overlays contain debugging modifications that can be applied to generate a modified version of the code for debugging purposes, while the original source code remains unchanged and intact.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent enables easy discarding of debugging modifications by removing overlays without affecting the original source code. The original code integrity is recovered automatically since the overlays are separate and can be removed at any time without leaving traces in the original source code.

Inventive Principle:
Principle #34Discarding and recovering

3Adaptability or versatility

If multiple debugging options are incorporated, then comprehensive debugging is achieved, but the complexity of incorporating and removing debug code increases

Engineering Contradiction:
Improvecomprehensive debuggingVSAvoidcomplexity of incorporating and removing debug code
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent makes the code base dynamic by allowing overlays to be added, removed, and applied at different stages of development. Multiple debugging options can be incorporated by adding different overlay files, and they can be easily removed or modified without permanently altering the original code structure.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent allows debugging modifications to be prepared in advance as overlay files before being applied to the original code. This preliminary preparation separates the complexity of creating debugging options from the act of applying them, making the overall process simpler and more manageable.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10915429B2Employing code overlays to facilitate software development
Publication Date: 2021.02.09 SERVICENOW INC
  • US10915429B2 patent drawing
  • US10915429B2 patent drawing
  • US10915429B2 patent drawing

AI summary

In one embodiment, a method for editing and testing computer programming code is provided. The method includes receiving a first file comprising computer programming code, and a first code overlay comprising one or more modifications to be applied to the computer programming code of the first file. The method further includes determining a first location within the computer programming code of the first file, at which to apply the first code overlay. The method further includes generating a second file comprising uncompiled composite computer programming code, the uncompiled composite computer programming code comprising the computer programming code of the first file modified by the one or more modifications applied at the first location. The method further includes testing the uncompiled composite computer programming code of the second file.