Declarative Source Diagnostics for Visual Element Debugging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging declarative source elements in applications, particularly visual elements, is challenging due to the use of declarative markup languages, which makes it difficult to locate the source of bugs in resource files or string tables, and traditional debugging methods are less effective when asynchronous code or event models are used.

Innovation Solution

Associating diagnosis information with declarative object sources during compilation, which includes file names, line numbers, and column details, and providing this information at runtime to help locate and correct bugs efficiently, and allowing selective retrieval for quality control.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If traditional debugging methods are used for declarative markup languages, then developers can use standard debuggers, but it becomes difficult to locate the source of bugs in resource files or string tables

Engineering Contradiction:
Improvedebugging easeVSAvoidbug location difficulty
Core Design Contradiction:
Ease of operationVSDifficulty of detecting and measuring

Solution Approach 1:

The patent applies preliminary action by embedding source location information (file names, line numbers, column details) into the executable code during the compilation phase. This allows the debugging system to have diagnostic data ready before runtime, enabling immediate identification of bug locations without manual searching through resource files or string tables.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism—a debugging system that acts as a mediator between the executable code and the source files. This intermediary translates runtime errors into meaningful source location information by matching embedded diagnostics with original source code, making bug detection easier without changing the fundamental debugging process.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of manufacture

If declarative markup languages are used to create visual elements, then user interface development is simplified, but finding the location of product sources representing elements becomes difficult

Engineering Contradiction:
ImproveUI development easeVSAvoidsource location difficulty
Core Design Contradiction:
Ease of manufactureVSDifficulty of detecting and measuring

Solution Approach 1:

The compilation process performs preliminary action by automatically embedding source location metadata into the executable when declarative markup is compiled. This pre-embedded information includes file names, line numbers, and column details, which are then available at runtime to quickly locate the exact source of visual element definitions without manual searching.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If asynchronous code or event models are used to create applications, then application functionality is enhanced, but traditional debugging methods become less effective

Engineering Contradiction:
Improveapplication functionalityVSAvoiddebugging effectiveness
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent applies preliminary action by embedding diagnostic information during compilation, before the asynchronous code executes. This ensures that even in asynchronous contexts where traditional stack traces may be incomplete or out of context, the source location information is already embedded and can be reliably retrieved to identify the origin of issues.

Inventive Principle:
Principle #10Preliminary action

4Difficulty of detecting and measuring

If developers sort through many resource files or string tables to find relevant code, then comprehensive search is performed, but time consumption increases significantly

Engineering Contradiction:
Improvesearch completenessVSAvoiddebugging time
Core Design Contradiction:
Difficulty of detecting and measuringVSLoss of time

Solution Approach 1:

The patent extracts the essential diagnostic information (file names, line numbers, column details) from the compilation process and embeds it directly into the executable code. This extraction eliminates the need for developers to manually search through multiple resource files or string tables, as the relevant source location is directly provided in the diagnostic output.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

By performing the information extraction and embedding during compilation (preliminary action), the system prepares the diagnostic data in advance, eliminating the time-consuming manual search process that would otherwise be required at runtime.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9367429B2Diagnostics of declarative source elements
Publication Date: 2016.06.14 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9367429B2 patent drawing
  • US9367429B2 patent drawing
  • US9367429B2 patent drawing

AI summary

A method for diagnosing declarative source elements in an application, such as in debugging markup source elements or visual elements in an application, is disclosed. Diagnosis information is associated with an object source of a visual element. The diagnosis information is provided for the visual element during the runtime of the application.