Patent ID: 8739127

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 method comprising: receiving, by the debug server that includes a debug administrator, a message router, a back-end debugger, and a debuggee, from the debug clients asynchronously during a debug session of the debuggee, a plurality of application-level messages, including receiving, from a symbol locking debug client, a request to lock one or more symbols from value modification; 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: establishing a lock for each of the one or more symbols; 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, returning, responsive to a request to modify a value of a locked symbol, an indication that the symbol is locked without modifying the value of the locked symbol as requested, wherein: receiving a plurality of application-level messages further comprises receiving from a requesting debug client, subsequent to establishing locks for each of the one more symbols, a request to modify the value of a particular symbol; and routing the application-level messages among the debug clients, the debug administrator, and the back-end debugger further comprises: commanding the back-end debugger to identify a reference address of the particular symbol; and determining whether the particular symbol is locked including providing to the debug administrator the reference address of the particular symbol and receiving from the debug administrator an indication of a previously stored record that includes the reference address of the particular symbol.