Automatic Debugger Reattachment for Mobile App State Transitions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Mobile device applications often face power constraints, leading to termination and reactivation, which disrupts debugging processes, as existing systems do not allow multiple applications to remain active simultaneously, affecting user experience and developer efficiency.

Innovation Solution

A debugger is automatically reattached to a reactivated mobile device application without user intervention, allowing seamless transition through states and appearing as a single debug session, using a debug stub to monitor and relaunch the application in debug mode.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Use of energy by moving object

If the application is terminated to conserve power on mobile device, then power consumption is reduced, but the debugging session is disrupted and developer efficiency decreases

Engineering Contradiction:
Improvepower consumptionVSAvoiddeveloper efficiency
Core Design Contradiction:
Use of energy by moving objectVSProductivity

Solution Approach 1:

The system performs preliminary actions by saving the debugging state and application data before termination occurs. The debug stub captures execution state, variable values, and program counter information while the application is still active, storing this data for later restoration when the application is reactivated, thus maintaining debugging continuity across power-saving cycles

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The debug stub acts as an intermediary between the debugger and the application process. It remains resident in memory even when the application is terminated and reactivated, serving as a persistent connection point that allows the debugger to reattach to the restored application state without requiring manual reinitialization, thereby bridging the gap caused by power-saving terminations

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If multiple applications are allowed to remain active simultaneously, then application responsiveness is improved, but power consumption increases and user experience deteriorates on mobile devices

Engineering Contradiction:
Improveapplication responsivenessVSAvoidpower consumption
Core Design Contradiction:
Ease of operationVSUse of energy by moving object

Solution Approach 1:

The system extracts the essential debugging functionality into a separate debug stub component that can operate independently of the application's active state. This stub remains in memory and maintains the debugging infrastructure even when the application is terminated for power saving, allowing the application to be fully terminated without impacting debugging capability while still enabling rapid reattachment when needed

Inventive Principle:
Principle #2Taking out (Extraction)

3Measurement precision

If the debugger session is manually reinitialized after application reactivation, then debugging accuracy is maintained, but time is lost and operation complexity increases

Engineering Contradiction:
Improvedebugging accuracyVSAvoidreinitialization time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system implements feedback by having the debug stub continuously monitor application state and automatically detect when the application transitions from terminated to reactivated state. Upon detection, the stub autonomously triggers the reattachment process, notifying the debugger and restoring the debugging session without requiring user input, thus maintaining accuracy while eliminating manual intervention time

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The debugging system performs self-service through the debug stub's automatic reattachment capability. When the application is reactivated after termination, the stub automatically restores the debugging session by reloading saved state information and reestablishing the debugger connection, eliminating the need for manual reinitialization while preserving debugging accuracy through systematic state restoration

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9021436B2Automatic reconnection of debugger to a reactivated application
Publication Date: 2015.04.28 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9021436B2 patent drawing
  • US9021436B2 patent drawing
  • US9021436B2 patent drawing

AI summary

Although a software developer writing software for a mobile device typically performs the development and some of the debugging of the application on a software development computer, the application also has to be debugged as it passes through the deactivate, terminate and reactivate states as it executes on the mobile device. To debug an application the developer can launch the debugger on the software development computer. The debugger can launch the application on the mobile device. If an event that terminates the application occurs, the debugger connection is terminated. In accordance with aspects of the subject matter disclosed herein, the debugger is automatically reattached to the restarted (activated) application. Reattaching the debugger automatically to the restarted application allows the developer to debug the mobile device application as an application passing through multiple states rather than debugging multiple instances of an application.