Patent ID: 8850397

Claim:
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: presenting, by each debug client to a user of the debug client, a client-specific graphical user interface (‘GUI’), the client-specific GUI comprising a client-specific display of a debug session of the debuggee, including a client-specific local variables pane; detecting, by each debug client, user input through the client-specific GUI, including detecting, by at least one particular debug client, user input setting the client-specific local variables pane to display local variables of a stack frame associated with an active routine owned by the particular debug client; generating, by each debug client in dependence upon the detected user input, one or more application-level messages; sending, by each debug client, the application-level messages to the debug server; receiving, by each debug client responsive to the application-level messages, client-specific debug results including receiving, by the particular debug client, one or more application-level messages comprising a REQUEST REPLY message and a payload that includes a value of each local variable of the stack frame associated with the active routine owned by the particular debug client, wherein the debug server generates the client-specific debug results by providing distributed control to each debug client; and displaying, by each debug client in the client-specific GUI, the client-specific debug results, including: displaying, in the particular debug client's client-specific local variables pane, the local variables of the stack frame associated with the active routine owned by the particular debug client; and displaying, in another debug client's client-specific local variables pane, local variables of another stack frame.