Low Privilege Debugging Pipeline
AssigneeMicrosoft Corporation
InventorsJonathon Michael Stall, Charles P. Jazdzewski
Life of this patent
Estimating the term…
Abstract
A low privilege debug pipeline publisher advertises a debugging pipeline. Instead of having a client to which a debugger on the server has been attached interrogate the server for debugging information, the client requests information from the server. Control is returned to the server which can refuse to provide the requested information to the client. A debuggee server executes client code being debugged in an isolated context so that pausing the code at a breakpoint does not block the server. The server can apply transforms to compiled code to make the code cooperate with debugging services so that a privileged component to inspect the debuggee code is not needed.
Claims20
A system that performs remote debugging securely comprising:
- a low privilege debug pipeline publisher executing as a server process in a client-server environment,
- the low privilege debug pipeline publisher publishing debuggability of code belonging to a client in the client-server environment via a low privilege debug pipeline, the client code resident on a server computer,
- wherein a debugging session debugging the client code resident on the server computer is a low privilege process running on the server computer and is restricted to the client code resident on the server computer.
A method of performing client-to-client debugging comprising:
- establishing a first connection from a first client process to a server computer from a client computer;
- establishing a second connection from the server computer to a second client process, the first client process and the second client process running on the client computer;
- publishing a low privilege debug pipeline by the first client process for code debugged by a low privilege debugger running on the second client process, the first client process and the second client process running on the client computer;
- optimizing routing of communications between the first client process and the second client process to remove the server computer from the first connection and from the second connection, wherein debug communications between the first client process to the second client process and from the second client process to the first client process exclude the server computer.
A computer-readable storage medium comprising computer-executable instructions which when executed cause a computing environment to:
- isolate a debug process running on a server computer on client code resident on the server computer, wherein a debug operation resulting in a pause or stop of execution of the client code does not pause or stop execution of other client threads in the process,
- wherein the debug process is isolated by publishing a low privilege debug pipeline, wherein the low privilege debug pipeline limits debug information provided to a client computer to the client code belonging to the client computer, the client code resident on the server computer.
Dependencies are inferred from the claim text.