×

Collaborative software debugging in a distributed system with private debug sessions

  • US 8,756,577 B2
  • Filed: 06/28/2011
  • Issued: 06/17/2014
  • Est. Priority Date: 06/28/2011
  • Status: Expired due to Fees
First Claim
Patent Images

1. A method of collaborative software debugging in a distributed system, the distributed system comprising a debug server, a plurality of debug clients, and a data communications network, the debug server coupled for data communications to the plurality of debug clients through the data communications network, the debug server comprising a debug administrator, a message router, a back-end debugger, and a debuggee, the method comprising:

  • receiving, by the debug server from the debug clients asynchronously during a debug session of the debuggee, a plurality of application-level messages, including receiving, from a requesting debug client, a request to establish a private debug session of the debuggee, including;

    replacing, by the back-end debugger at a stopped location in debuggee execution, original debuggee instructions with private debug session fork instructions;

    executing the private debug session fork instructions of the debuggee, wherein executing the private debug session fork instructions of the debuggee further comprises;

    instantiating a private instance of the debuggee; and

    waiting, by the private instance of the debuggee, in a loop; and

    receiving, by the back-end debugger, a fork notification that includes an identifier of the private instance of the debuggee;

    forking, by the back-end debugger, into a private instance of the back-end debugger, including attaching, in dependence upon the identifier, the private instance of the debuggee in a private debug session;

    inserting, by the private instance of the back-end debugger at the stopped location in the private instance of the debuggee, a breakpoint;

    releasing, by the private instance of the back-end debugger, the private instance of the debuggee from the loop;

    responsive to the release, returning, by the private instance of the debuggee, to the stopped location;

    encountering, by the private instance of the debuggee, the breakpoint, thereby stopping execution of the private instance of the debuggee;

    replacing, by the private instance of the back-end debugger, the original debuggee instructions at the stopped location; and

    instantiating, by the private instance of the back-end debugger, with a graphical user interface (‘

    GUI’

    ) of the requesting debug client, data communications; and

    routing, by the message router in accordance with an application-level message passing protocol, the application-level messages among the debug clients, the debug administrator, and the back-end debugger, thereby providing distributed control of the back-end debugger to the debug clients with application-level messages routed to the back-end debugger, including forwarding, to the back-end debugger, the request to establish a private debug session of the debuggee; and

    returning, by the debug server to the debug clients in response to the application-level messages routed to the back-end debugger, client-specific debug results, including establishing the private debug session of the debuggee for the requesting debug client.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×