Control Program Debugging Across Mismatched Source Code Versions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing debugging methods for control programs in automation systems fail to effectively handle situations where the source code differs from the compiled machine code, necessitating retranslation upon every change, which is inefficient and complicates collaboration among developers.

Innovation Solution

A method that utilizes machine code-source code relations and source code identities to establish mappings between different versions of source code, allowing debugging operations to be performed directly on modified source code without retranslation, even when the source code does not correspond to the machine code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If the source code is modified and retranslated to machine code for debugging, then the debugging accuracy is improved, but the development time and productivity deteriorate

Engineering Contradiction:
Improvedebugging accuracyVSAvoiddevelopment time
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent applies preliminary action by pre-generating and storing the machine code-source code relation map before debugging operations. This map establishes the correspondence relationships between machine code instructions and source code lines in advance, so that when debugging is needed, the system can directly use this pre-established mapping without performing time-consuming retranslation operations, thus resolving the contradiction between debugging accuracy and development time

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses copying by creating and maintaining a separate machine code-source code relation map that copies the essential mapping information from the original compilation process. This relation map serves as a lightweight copy that can be quickly referenced during debugging without requiring the full source code to be retranslated, enabling fast debugging while preserving accuracy

Inventive Principle:
Principle #26Copying

2Adaptability or versatility

If the source code version on the development system differs from the compiled version, then the debugging flexibility is improved, but the reliability of debugging information deteriorates

Engineering Contradiction:
Improvedebugging flexibilityVSAvoiddebugging information accuracy
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent introduces an intermediary mechanism - the machine code-source code relation map - that mediates between the source code version on the development system and the compiled machine code. This intermediary maintains the correspondence relationships even when source code versions differ, allowing developers to debug with flexible source code versions while the relation map ensures the reliability of debugging information by accurately mapping to the actual executed machine code

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements feedback by continuously maintaining and updating the machine code-source code relation map to reflect the actual state of the compiled code. When source code changes occur, the system can update the relation map accordingly, providing feedback about the current correspondence state. This ensures that even with different source code versions, the debugging information remains reliable as it is based on the actual compiled machine code

Inventive Principle:
Principle #23Feedback

Data Source

PatentEP4594888B1Method for executing a debugging process of a control program of an automation system
Publication Date: 2026.01.14 BECKHOFF AUTOMATION GMBH
  • EP4594888B1 patent drawingFigure 1
  • EP4594888B1 patent drawingFigure 2
  • EP4594888B1 patent drawingFigure 3

AI summary

The invention relates to a method (100) for executing a debugging process of a control program of an automation system (200), comprising: in a receiving step (101), receiving a first machine code/source code relation (211) and a first source code identity (213) by a development system (203) for executing the debugging process (224); in a source code comparison step (103), comparing the first source code identity (213) with a second source code identity (217) of a second source code version (215) executed on the development system (203); in an identity generation step (105), generating a version identity (219) based on the comparison between the first source code identity (213) and the second source code identity (217); in a relation determination step (107), determining a second machine code/source code relation (227) based on the first machine code/source code relation (211) and the version identity (219); and in a debugging step (109), executing the debugging process (224) of the machine code (209) stored on the control unit (201) on the basis of the second source code version (215) using the second machine code/source code relation (227).