IP Library Granted Patent US 9,251,039
Granted Patent B2
US 9,251,039 · App. 13/398,851 · Granted Feb 2, 2016

Remote debugging as a service

Inventors: Sung Hon Wu (Bellevue, WA); Lubomir Birov (Redmond, WA); Anthony Crider (Mill Creek, WA); Jeffrey Young (Snoqualmie, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F11/3664
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,251,039
App. No.
13/398,851
Granted
Feb 2, 2016
Kind
B2
Abstract

Debugging capabilities for software running in a cloud-computing environment are disclosed. A controller identifies which machines in the cloud are running instances of software to be debugged. An agent is deployed onto the machines in the cloud to facilitate communication with the developer's machine. When the developer wants to debug software on the agent's machine, the agent downloads and installs a monitor onto the machine. The agent configures the machine for remote debugging via the monitor. A security mechanism ensures that only authenticated developers can access the monitor and the remote machine for debugging. A controller automatically determines which machines can be debugged, updates a list of processes available for debugging on the machines, and identifies how to connect a developer's debugging client to the machines. The controller permits remote debugging only upon request from an authenticated developer and only for those processes that the developer is permitted to debug.

Claims (20)

1. A method, comprising:

in an environment comprising a developer machine coupled to a first virtual machine (VM) via a network, wherein the first VM is coupled to a second VM, wherein the first VM is configured to execute a first instance of a software application and the second VM is configured to execute a second instance of the software application:

sending, by a remote debug client running on the developer machine, an instruction that a debug controller running on the first VM identify the second VM among a plurality of distributed VMs as being configured to execute the second instance of the software application;

sending, by the remote debug client running on the developer machine, an instruction that the debug controller running on the first VM configure a debug connector running on the second VM for remote debugging;

identifying one or more processes not permitted to be debugged in the second VM due to an owner of the second VM having restricted debug capabilities; and

establishing a connection between the remote debug client running on the developer machine and the debug connector running on the second VM through the debug controller running on the first VM while preventing a developer operating the remote debug client from seeing the identified one or more processes.

2. The method of claim 1 , wherein the developer machine comprises a server or virtual machine in the network.

3. The method of claim 1 , further comprising:

receiving a single input from a user indicating that all instances of the software application on all machines should be selected and debugged.

4. The method of claim 1 , wherein the debug controller running on the first VM configures the second VM for debugging by opening firewall ports to the second VM.

5. The method of claim 1 , wherein the debug controller running on the first VM configures the second VM debugging by downloading and installing a monitoring application on the second VM.

6. The method of claim 1 , wherein the debug connector provides and manages interfaces between the developer machine on a public network and machines running the software application on a private network.

7. The method of claim 1 , wherein the debug connector authenticates the remote debug client before connecting the remote debug client and the second VM.

8. A method, comprising:

in an environment comprising a developer machine coupled to a first virtual machine (VM) via a network, wherein the first VM is coupled to a second VM, wherein the first VM is configured to execute a first instance of a software application and the second VM is configured to execute a second instance of the software application:

receiving, at a debug connector running on the second VM, a request from a debug controller running on the first VM to identify instances of the software application, wherein the request is originated by a remote debug client running on the developer machine;

receiving instructions at the debug connector from the debug controller to configure the second VM for debugging;

identifying one or more processes not permitted to be debugged in the second VM due to an owner of the second VM having restricted debug capabilities; and

configuring a connection between the second VM and the debug controller to enable the remote debug client to attach to the second VM for debugging without allowing a developer to see the identified one or more processes.

9. The method of claim 8 , wherein information that identifies instances of the software application includes one or more process identifiers.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2012
From: WU, SUNG HON; BIROV, LUBOMIR; CRIDER, ANTHONY; YOUNG, JEFFREY
To: MICROSOFT CORPORATION
Reel/Frame 027720/0967 →
Continuity (1)
Related Publication 20130219363A1 · Aug 22, 2013