Remote Debugging Proxy for Low-Bandwidth Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional remote debugging processes are hindered by slow connection speeds and high response times due to the need for numerous roundtrip communications across a low-bandwidth boundary between the local and remote systems, leading to inefficient debugging operations.
Innovation Solution
A remote debugging proxy system is introduced, which reroutes communications through local and remote proxy engines, allowing the remote side proxy to collect and compress context-dependent information, and the local side proxy to cache this information, thereby reducing the need for multiple roundtrip requests and improving response times.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If conventional remote debugging protocol is used with roundtrip request-response cycles, then debugging can be performed remotely across systems, but the debugging process becomes slow and time-intensive due to low bandwidth and high response time
Solution Approach 1:
The system performs preliminary actions by having the remote debugger send multiple debug commands in advance to the remote virtual machine before needing responses. This allows the virtual machine to execute these commands and prepare results ahead of time, reducing the need for slow roundtrip communications during the actual debugging process.
Solution Approach 2:
The debugging process is segmented into two distinct phases: a preliminary phase where commands are sent and executed in advance, and a response phase where results are retrieved. This segmentation allows the system to decouple the time-consuming remote execution from the interactive debugging workflow, improving overall debugging speed.
2Loss of information
If multiple roundtrip communications are performed across the boundary between local and remote systems, then complete debugging information can be obtained, but the response time increases and debugging efficiency decreases
Solution Approach 1:
The system performs preliminary actions by having the remote debugger send multiple debug commands in advance to the remote virtual machine before needing responses. This allows the virtual machine to execute these commands and prepare results ahead of time, reducing the need for slow roundtrip communications during the actual debugging process.
Solution Approach 2:
The system creates copies of debug commands and sends them in advance to the remote virtual machine. These command copies are executed remotely while the original debugging session continues locally, allowing information to be retrieved without additional roundtrip delays.
3Measurement precision
If every debug command requires a roundtrip request and response cycle, then accurate debugging information can be obtained, but the debugging process becomes extremely time intensive
Solution Approach 1:
The system performs preliminary actions by having the remote debugger send multiple debug commands in advance to the remote virtual machine before needing responses. This allows the virtual machine to execute these commands and prepare results ahead of time, reducing the need for slow roundtrip communications during the actual debugging process.
Solution Approach 2:
The system maintains continuity of useful action by overlapping command transmission, execution, and response retrieval. While the virtual machine executes preliminary commands in the background, the debugging session continues with other operations, ensuring that useful debugging work is performed continuously without idle roundtrip delays.
Data Source
AI summary
An apparatus and method for a remote debugging proxy. An embodiment of a method for debugging a system includes receiving notification of an event regarding a target system at a first proxy component, requesting information from the target computing system regarding the event, and receiving the information from the target computing system. The event notification is transferred to a debugging component via a second proxy component, and the requested information is transferred to the second proxy component.


