Collaborative Software Debugging In A Distributed System With Real-Time Variable Modification Indicators
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, by the debug server from the debug clients asynchronously during a debug session of the debuggee, a plurality of application-level messages, receiving, from a requesting debug client, a request to notify other debug clients that the requesting debug client is presently modifying a value of a particular variable; routing, by the message router, the application-level messages among the debug clients, the debug administrator, and the back-end debugger, including distributing to the other debug clients a notification of the modification the value of the particular variable; and returning, to the debug clients, client-specific debug results.
Claims
exact text as granted — not AI-modified1 . 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, receiving, from a requesting debug client, a request to notify other debug clients that the requesting debug client is presently modifying a value of a particular variable; 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 distributing to the other debug clients a notification that the requesting debug client is presently modifying the value of the particular variable; 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.
2 . The method of claim 1 wherein the request to notify other debug clients that the requesting debug client is presently modifying a value of a particular variable comprises a GUI element identifier representing the particular variable.
3 . The method of claim 1 wherein the request to notify other debug clients that the requesting debug client is presently modifying a value of a particular variable comprises an address representing the particular variable.
4 . The method of claim 1 further comprising distributing to the other debug client a notification that the requesting debug client is presently modifying the value of the particular variable further comprises distributing along with the notification the an identification of requesting debug client.
5 . The method of claim 1 further comprising:
receiving, by the message router from the requesting debug client after completion of the debug client's modification of the value of the particular variable, a request to notify the other debug clients of the completion; and
distributing, by the message router to each of the other debug clients, a notification that the modification of the value of the particular variable by the requesting debug client is complete.
6 . 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; detecting, by each debug client, user input through the client-specific GUI, including detecting, by a requesting debug client, user input indicating a present modification of a value of a particular variable; generating, by each debug client in dependence upon the detected user input, one or more application-level messages, including generating a request to notify other debug clients that the requesting debug client is presently modifying the value of the particular variable; sending, by each debug client, the application-level messages to the debug server, including sending, by the requesting debug client, the request to the debug server; receiving, by each debug client responsive to the application-level messages, client-specific debug results, including receiving, by each of the other debug clients, a notification that the requesting debug client is presently modifying the value of the particular variable; and displaying, by each debug client in the client-specific GUI, the client-specific debug results, including displaying by each of the other debug clients an indication of the requesting debug client's present modification.
7 . The method of claim 6 further comprising:
generating, by the requesting debug client upon completion of the modification, a request to notify the other debug clients of the completion;
sending, by the requesting debug client to the debug server, the request to notify the other debug clients of the completion;
receiving, by each of the other debug clients from the debug server, a notification that the modification of the value of the particular variable by the requesting debug client is complete; and
displaying, by each of the other debug clients in the debug client's client-specific GUI, an indication of completion of the modification of the value of the particular variable.
8 . The method of claim 7 wherein displaying an indication of completion of the modification of the value of the particular variable further comprises displaying, as part of the indication of completion, an identification of the requesting debug client.
9 . The method of claim 6 wherein the request to notify other debug clients that the requesting debug client is presently modifying a value of a particular variable comprises a GUI element identifier representing the particular variable.
10 . The method of claim 6 wherein the request to notify other debug clients that the requesting debug client is presently modifying a value of a particular variable comprises an address representing the particular variable.
11 . 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 debug server comprising a debug administrator, a message router, a back-end debugger, and a debuggee, 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:
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; detecting, by each debug client, user input through the client-specific GUI, including detecting, by a requesting debug client, user input indicating a present modification of a value of a particular variable; generating, by each debug client in dependence upon the detected user input, one or more application-level messages, including generating a request to notify other debug clients that the requesting debug client is presently modifying the value of the particular variable; sending, by each debug client, the application-level messages to the debug server, including sending, by the requesting debug client, the request to the debug server; receiving, by each debug client responsive to the application-level messages, client-specific debug results, including receiving, by each of the other debug clients, a notification that the requesting debug client is presently modifying the value of the particular variable; and displaying, by each debug client in the client-specific GUI, the client-specific debug results, including displaying by each of the other debug clients an indication of the requesting debug client's present modification.
12 . The apparatus of claim 11 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:
generating, by the requesting debug client upon completion of the modification, a request to notify the other debug clients of the completion;
sending, by the requesting debug client to the debug server, the request to notify the other debug clients of the completion;
receiving, by each of the other debug clients from the debug server, a notification that the modification of the value of the particular variable by the requesting debug client is complete; and
displaying, by each of the other debug clients in the debug client's client-specific GUI, an indication of completion of the modification of the value of the particular variable.
13 . The apparatus of claim 12 wherein displaying an indication of completion of the modification of the value of the particular variable further comprises displaying, as part of the indication of completion, an identification of the requesting debug client.
14 . The apparatus of claim 11 wherein the request to notify other debug clients that the requesting debug client is presently modifying a value of a particular variable comprises a GUI element identifier representing the particular variable.
15 . The apparatus of claim 11 wherein the request to notify other debug clients that the requesting debug client is presently modifying a value of a particular variable comprises an address representing the particular variable.
16 . 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 debug server comprising a debug administrator, a message router, a back-end debugger, and a debuggee, the computer program product disposed upon a computer readable storage medium, 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:
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; detecting, by each debug client, user input through the client-specific GUI, including detecting, by a requesting debug client, user input indicating a present modification of a value of a particular variable; generating, by each debug client in dependence upon the detected user input, one or more application-level messages, including generating a request to notify other debug clients that the requesting debug client is presently modifying the value of the particular variable; sending, by each debug client, the application-level messages to the debug server, including sending, by the requesting debug client, the request to the debug server; receiving, by each debug client responsive to the application-level messages, client-specific debug results, including receiving, by each of the other debug clients, a notification that the requesting debug client is presently modifying the value of the particular variable; and displaying, by each debug client in the client-specific GUI, the client-specific debug results, including displaying by each of the other debug clients an indication of the requesting debug client's present modification.
17 . The computer program product of claim 16 further comprising computer program instructions that, when executed by a computer processor of a computer, cause the computer to carry out the steps of:
generating, by the requesting debug client upon completion of the modification, a request to notify the other debug clients of the completion;
sending, by the requesting debug client to the debug server, the request to notify the other debug clients of the completion;
receiving, by each of the other debug clients from the debug server, a notification that the modification of the value of the particular variable by the requesting debug client is complete; and
displaying, by each of the other debug clients in the debug client's client-specific GUI, an indication of completion of the modification of the value of the particular variable.
18 . The computer program product of claim 17 wherein displaying an indication of completion of the modification of the value of the particular variable further comprises displaying, as part of the indication of completion, an identification of the requesting debug client.
19 . The computer program product of claim 16 wherein the request to notify other debug clients that the requesting debug client is presently modifying a value of a particular variable comprises a GUI element identifier representing the particular variable.
20 . The computer program product of claim 16 wherein the request to notify other debug clients that the requesting debug client is presently modifying a value of a particular variable comprises an address representing the particular variable.Join the waitlist — get patent alerts
Track US2012278790A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.