Collaborative software debugging in a distributed system with symbol locking
First Claim
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 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.
1 Assignment
0 Petitions
Accused Products
Abstract
In a distributed system that includes a debug server and debug clients coupled for data communications through a data communications network, where the debug server includes a debug administrator, a message router, a back-end debugger, and a debuggee, collaborative software debugging includes receiving, from the debug clients, 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, the application-level messages among the debug clients, the debug administrator, and the back-end debugger, including: establishing a lock for each of the one or more symbols; and returning, to the debug clients, 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.
123 Citations
12 Claims
-
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 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; andreturning, 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. - View Dependent Claims (2, 3, 4)
-
-
5. An apparatus for 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 apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:
-
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; andreturning, 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; androuting 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. - View Dependent Claims (6, 7, 8)
-
-
9. A computer program product for 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 computer program product disposed upon a computer readable storage medium, wherein the computer readable storage medium is not a signal, the computer program product comprising computer program instructions that, when executed by a computer processor of a computer, cause the computer to carry out the steps of:
-
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; andreturning, 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. - View Dependent Claims (10, 11, 12)
-
Specification