Source Code Debugging via Gateway Debugger Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging software applications that undergo multiple compilations into intermediate languages is complex, as developers must understand the intermediate language and debug in it, then translate corrections back to the source language, which is cumbersome and reduces the attractiveness of the solution.

Innovation Solution

A method that inserts complementary instructions during compilation to intercept events and format code for debugging, allowing a gateway debugger to convert debugging information between source and intermediate languages, enabling direct debugging of the source language without needing to learn the intermediate language or debug in it.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If developers debug software applications that undergo multiple compilations into intermediate languages by understanding and debugging in the intermediate language, then debugging capability is achieved, but developer workload and complexity increase significantly

Engineering Contradiction:
Improvedebugging capabilityVSAvoiddeveloper workload
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a gateway debugger as an intermediary component that mediates between the source language debugger and the intermediate language debugger. This gateway debugger translates debugging requests and information between the two languages, allowing developers to debug source code without directly learning the intermediate language, thus resolving the contradiction between achieving debugging capability and reducing developer workload

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a virtual copy of the source language debugging environment that operates on the intermediate language code. The gateway debugger maintains a mapping between source language constructs and intermediate language constructs, allowing developers to interact with familiar source language debugging interfaces while the system handles the translation to and from intermediate language, effectively copying the source debugging experience onto the intermediate code

Inventive Principle:
Principle #26Copying

2Ease of repair

If developers translate corrections from intermediate language back to source language, then bug fixes are applied, but time and effort are lost

Engineering Contradiction:
Improvebug fix applicationVSAvoidtranslation time
Core Design Contradiction:
Ease of repairVSLoss of time

Solution Approach 1:

The gateway debugger implements a feedback mechanism that automatically tracks and maps debugging actions performed in the intermediate language back to the corresponding source language locations. When a developer identifies and fixes a bug in the intermediate language representation, the system automatically feeds back the correction information to the appropriate location in the source code, eliminating manual translation time and effort

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs preliminary actions by pre-establishing a comprehensive mapping database between source language constructs and intermediate language constructs during the compilation process. This preliminary mapping allows subsequent bug fixes to be automatically translated back to source language without requiring real-time analysis, significantly reducing the time and effort needed for correction translation

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If complementary instructions are inserted during compilation to intercept debugging events, then source language debugging is enabled, but compilation complexity increases

Engineering Contradiction:
Improvesource language debuggingVSAvoidcompilation process
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent segments the compilation process into distinct phases: a first compilation phase that generates intermediate language code with embedded debugging markers, and a second compilation phase that produces the final executable. The gateway debugger is introduced as a separate component that handles the translation logic, thereby segmenting the complexity away from the compilers themselves and making the overall system easier to operate while maintaining manageable compilation complexity

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8776024B2Software application fine-tuning method, system, and corresponding computer program product
Publication Date: 2014.07.08 GOOGLE LLC
  • US8776024B2 patent drawing
  • US8776024B2 patent drawing
  • US8776024B2 patent drawing

AI summary

The invention relates to a method for fine-tuning a software application that is written in a source programming language and is executable on a target platform. According to the invention, such a method includes: a stage of compiling said software application that is written in said source language and supplies the code of an intermediate software application that is written in an intermediate language, said stage comprising a step of inserting, into the code of said intermediate software application, a specific construction for intercepting events by means of complementary instructions, and a step of formatting the intermediate code of said software application such that the matching of a line of source code with a line of intermediate code is the most frequent possible matching; a stage of compiling the code from said intermediate software application into an executable software application; and a stage for fine-tuning said software application, said stage including at least one step of converting at least one piece of fine-tuning information between a program for fine-tuning said intermediate language and a program for fine-tuning said source language.