Remapping Debuggable Code via Gesture Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current debugging processes in computer applications often result in the host application freezing when a breakpoint is hit, which can impact user experience and efficiency, especially when transitioning from older to newer scripting platforms.

Innovation Solution

The user script code is remapped into debuggable code based on explicit debugging gestures, with instrumentation techniques such as injecting guards and splitting functions, tailored to the capabilities of the virtual machine, allowing for efficient debugging without freezing the host application.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If user script code is fully transformed into debuggable script code, then debuggability is improved, but execution efficiency deteriorates

Engineering Contradiction:
ImprovedebuggabilityVSAvoidexecution efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the script code transformation process by dividing functions into smaller units and selectively transforming only those portions where debugging gestures are detected, rather than transforming the entire script code base. This allows debuggability to be improved in specific locations without unnecessarily impacting overall execution efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial transformation of script code into debuggable code based on debugging gestures. Instead of fully transforming all code (excessive action), the system transforms only the necessary portions where debugging is actually requested, achieving sufficient debuggability while minimizing performance overhead.

Inventive Principle:
Principle #16Partial or excessive action

2Reliability

If debugging features are added to script code, then debugging capability is improved, but host application responsiveness deteriorates

Engineering Contradiction:
Improvedebugging capabilityVSAvoidhost application responsiveness
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent introduces an intermediary mechanism (debugging gesture detection system) that mediates between the debugging requirements and the host application execution. The system detects explicit debugging gestures and selectively activates debugging features, allowing debugging capability to be improved without causing the host application to freeze or become unresponsive.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent makes the debugging feature activation dynamic rather than static. Debugging features are activated only when and where explicit debugging gestures are detected during runtime, allowing the system to adapt between debugging mode and normal execution mode, thereby maintaining host application responsiveness while providing debugging capability when needed.

Inventive Principle:
Principle #15Dynamics

3Speed

If virtual machine functional call speed is high, then more guards can be injected, but code complexity increases

Engineering Contradiction:
Improvefunctional call speedVSAvoidcode complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent changes the parameter of guard injection based on the virtual machine's functional call speed. When the VM exhibits high call speed, the system increases the number of guards injected into the code. This parameter-based adaptation allows the system to optimize between debugging coverage and code complexity based on runtime performance characteristics.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9047405B2Remapping debuggable code
Publication Date: 2015.06.02 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9047405B2 patent drawing
  • US9047405B2 patent drawing
  • US9047405B2 patent drawing

AI summary

User script code that has been developed for execution in a host application can be remapped to debuggable script code, based on explicit debugging gestures, allowing for appropriate debugging coverage for the code while mitigating execution (in)efficiency issues. Capabilities of a virtual machine used for a host application can be determined, and the user script code can be instrumented with guards for detecting explicit debugging gestures based on capabilities of the virtual machine. The instrumented user script code can be executed in a runtime environment, for example, by a just-in-time compilation service. If an explicit debugging gesture is detected, a function where the gesture was detected can be transformed into debuggable script code, in one embodiment, based on the debuggable gesture detected.