Debugging applications at resource constrained virtual machines using dynamically installable lightweight agents
First Claim
1. A system, comprising:
- a target computer device configured to host a lightweight debug agent configured to facilitate debugging of one or more threads of execution at a virtual machine executing at the target device, wherein the lightweight debug agent is capable of pausing execution of the thread at a given point during debugging; and
a debug controller configured to;
receive a request to initiate a debug session to debug a targeted thread of the one or more threads, wherein the request identifies the target device and the targeted thread;
in response to receiving the request, determine that an independently deployable module for the lightweight debug agent usable in performing the debug session is not deployed at the virtual machine;
in response to said determining that the module is not deployed, deploy the module of the lightweight debug agent at the virtual machine for the debug session;
initiate the debug session of the targeted thread, wherein the debugging session comprises pausing execution of the targeted thread at a given point; and
receive, from the lightweight debug agent, debug information obtained from the targeted thread of execution during at least a portion of the debug session;
provide the debug information to a debugger.
2 Assignments
0 Petitions
Accused Products
Abstract
A system for debugging applications at resource-constrained virtual machines may include a target device configured to host a lightweight debug agent to obtain debug information from one or more threads of execution at a virtual machine executing at the target device, and a debug controller. The lightweight debug agent may include a plurality of independently deployable modules. The debug controller may be configured to select one or more of the modules for deployment at the virtual machine for a debug session initiated to debug a targeted thread, to deploy the selected modules at the virtual machine for the debug session, and to receive debug information related to the targeted thread from the lightweight debug agent during the session.
66 Citations
19 Claims
-
1. A system, comprising:
-
a target computer device configured to host a lightweight debug agent configured to facilitate debugging of one or more threads of execution at a virtual machine executing at the target device, wherein the lightweight debug agent is capable of pausing execution of the thread at a given point during debugging; and a debug controller configured to; receive a request to initiate a debug session to debug a targeted thread of the one or more threads, wherein the request identifies the target device and the targeted thread; in response to receiving the request, determine that an independently deployable module for the lightweight debug agent usable in performing the debug session is not deployed at the virtual machine; in response to said determining that the module is not deployed, deploy the module of the lightweight debug agent at the virtual machine for the debug session; initiate the debug session of the targeted thread, wherein the debugging session comprises pausing execution of the targeted thread at a given point; and receive, from the lightweight debug agent, debug information obtained from the targeted thread of execution during at least a portion of the debug session;
provide the debug information to a debugger. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-implemented method, comprising:
performing by a computer; receiving an identification of a thread of execution to be targeted for debugging during a debug session, wherein the thread of execution is executing within a virtual machine; selecting, from among a plurality of independently deployable modules for a lightweight debug agent, one or more modules to be deployed to the virtual machine to obtain debug information from the targeted thread during the debug session; deploying the one or more modules to the virtual machine for the debug session; obtaining debug information from the targeted thread during the debug session using the lightweight debug agent, wherein the debug agent is capable of pausing execution of the targeted thread at a given point during the debug session;
provide the debug information to a debugger.- View Dependent Claims (11, 12, 13)
-
14. A tangible computer readable storage medium storing program instructions, wherein the instructions are computer-executable to:
-
receive an identification of a thread of execution to be targeted for debugging during a debug session, wherein the thread of execution is executing within a virtual machine; select, from among a plurality of independently deployable modules for a lightweight debug agent, one or more modules to be deployed to the virtual machine to obtain debug information from the targeted thread during the debug session; deploy the one or more modules to the virtual machine for the debug session; and obtain debug information from the targeted thread during the debug session using the lightweight debug agent, wherein the debug agent is capable of pausing execution of the targeted thread at a given point during the debug session;
provide the debug information to a debugger. - View Dependent Claims (15, 16)
-
-
17. A constrained-memory computing device, comprising:
-
a processor, a memory coupled to the processor, wherein the memory comprises program instructions executable by the processor to; implement a plurality of threads of execution within a virtual machine, wherein the virtual machine is a reduced-memory version of a standard virtual machine used for deploying applications written in a platform-independent programming language; receive, from a debug controller via a communication link, one or more executable modules of a plurality of independently deployable modules for a lightweight debug agent to be deployed at the virtual machine to obtain debug information from a targeted thread of the plurality of threads during a debug session, wherein the targeted thread is identified by the debug controller and wherein the lightweight debug agent is capable of pausing execution of the targeted thread at a given point during the debug session; deploy the one or more executable modules at the virtual machine for the debug session while the targeted thread is running; and transmit, to the debug controller via the communication link, debug information obtained from the targeted thread by the lightweight debug agent during the debug session. - View Dependent Claims (18, 19)
-
Specification