Source Code Decoration for Program Trace Navigation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software development tools lack an efficient and intuitive mechanism for conveying control flow information and searching program execution traces, making it difficult to identify the root cause of issues, especially in large traces.

Innovation Solution

A source code decorator system that uses program trace information to decorate source code lines with execution instance controls and indicators, allowing developers to navigate and browse the execution history by associating program counter data with source code, and displaying visual cues such as drop-down controls, arrow-shaped decorations, timestamps, and hyperlinks to identify branches, function calls, and exceptions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If program execution traces are displayed in predetermined formats (trace event table or CallTree structure), then program execution information can be captured and displayed, but control flow information is not efficiently conveyed and trace search mechanism is insufficient

Engineering Contradiction:
Improvecontrol flow informationVSAvoidtrace search efficiency
Core Design Contradiction:
Loss of informationVSEase of operation

Solution Approach 1:

The patent transforms the traditional linear trace display into a multi-dimensional view by overlaying execution trace information directly onto the source code structure. This allows developers to navigate traces through code navigation rather than scrolling through event tables, effectively adding a spatial dimension to trace analysis and improving both information conveyance and search efficiency.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Solution Approach 2:

The patent introduces source code as an intermediary layer between the trace data and the developer. By mapping trace events to corresponding source code lines and displaying them together, the source code acts as a mediator that makes control flow information more intuitive and enables efficient navigation through familiar code structures.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If traditional trace display formats are used, then program execution can be recorded, but it is extremely difficult to identify root-cause of problems during program execution

Engineering Contradiction:
Improveproblem identification accuracyVSAvoiddebugging time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary mapping of trace events to source code lines before display. By pre-associating execution trace data with their corresponding source code locations and preparing the decorated view in advance, the system enables developers to immediately see the context of trace events without manual correlation, significantly reducing debugging time while improving problem identification accuracy.

Inventive Principle:
Principle #10Preliminary action

3Loss of information

If program trace tools generate trace logs in predetermined formats, then execution information can be captured, but the information does not efficiently convey control flow to developers

Engineering Contradiction:
Improvecontrol flow informationVSAvoidtrace display complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent merges trace display with source code editor functionality by overlaying execution trace information directly onto the source code view. This integration combines two previously separate systems (trace tools and code editors) into a unified interface, making control flow information more accessible while actually reducing operational complexity despite the enhanced functionality.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9921946B2Method and system to display and browse program trace using source code decoration
Publication Date: 2018.03.20 NXP USA INC
  • US9921946B2 patent drawing
  • US9921946B2 patent drawing
  • US9921946B2 patent drawing

AI summary

A method and apparatus are provided for navigating source code (112) by capturing a program trace data history (134) from a target (150) in response to execution of application executable code (123) thereon and decorating the source code blocks (252) on a graphical user interface viewer (251) by displaying an execution instance control indicator (253-255) corresponding to each detected execution instance, where an execution instance control enables control of which execution instance is displayed and an execution instance indicator displays information about the sequence of instructions that were executed at runtime in that execution instance.