Collaborative software debugging in a distributed system with variable-specific messages
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 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 variable-specific message for a particular variable, the variable-specific message comprising an identifier of the requesting debug client, and content to be displayed in association with the particular variable in a debug client'"'"'s client-specific graphical user interface (‘
GUI’
) upon evaluation of the 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 establishing the variable-specific message for 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, including responsive to each request by a variable evaluating debug client to evaluate a variable;
determining that a variable-specific message for the variable to be evaluated has been established by a debug client that is not the variable evaluating debug client, andin response to said determining, returning, by the message router to the variable evaluating debug client, the identification of the requesting debug client, and the content of the variable-specific message to display in association with the particular variable along with the evaluation of the particular variable in the variable evaluating debug client'"'"'s client-specific GUI.
1 Assignment
0 Petitions
Accused Products
Abstract
In a distributed system that includes a debug server and debug clients coupled for 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 application-level messages, including receiving, from a requesting debug client, a request to establish a variable-specific message for a particular variable; routing the application-level messages among the debug clients, the debug administrator, and the back-end debugger, including establishing the variable-specific message; and returning, to the debug clients, client-specific debug results, including: responsive to each request by a variable evaluating debug client to evaluate a variable and if a variable-specific message has been established for the variable to be evaluated, returning the content of the variable-specific message to be displayed in association with the variable in the variable evaluating debug client'"'"'s client-specific GUI along with the evaluation of the variable.
-
Citations
18 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 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 variable-specific message for a particular variable, the variable-specific message comprising an identifier of the requesting debug client, and content to be displayed in association with the particular variable in a debug client'"'"'s client-specific graphical user interface (‘
GUI’
) upon evaluation of the 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 establishing the variable-specific message for 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, including responsive to each request by a variable evaluating debug client to evaluate a variable; determining that a variable-specific message for the variable to be evaluated has been established by a debug client that is not the variable evaluating debug client, and in response to said determining, returning, by the message router to the variable evaluating debug client, the identification of the requesting debug client, and the content of the variable-specific message to display in association with the particular variable along with the evaluation of the particular variable in the variable evaluating debug client'"'"'s client-specific GUI. - View Dependent Claims (2, 3)
-
-
4. 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 a particular debug client to a user of the particular 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 a requesting debug client, user input through a second client-specific GUI, including detecting, by the requesting debug client that is not the particular debug client, user input establishing a variable-specific message for a particular variable, the variable-specific message comprising an identifier of the requesting debug client, and content to display in association with the particular variable in a debug client'"'"'s client-specific GUI upon evaluation of the particular variable; generating, by the requesting debug client in dependence upon the detected user input, one or more application-level messages, including generating a request to establish the variable-specific message for the particular variable; sending, by the requesting debug client, the application-level messages to the debug server, including sending the request to establish the variable-specific message for the particular variable to the debug server; receiving, by the particular debug client responsive to the application-level messages, client-specific debug results, including responsive to the variable evaluating debug client'"'"'s request to evaluate a particular variable, receiving the content of the variable-specific message along with the evaluation of the particular variable; and displaying, by the particular debug client in the client-specific GUI, the client-specific debug results, including displaying, by the particular debug client, the identifier of the requesting debug client, and the content of the variable-specific message in association with the particular variable along with the evaluation of the particular variable. - View Dependent Claims (5, 6, 7, 8)
-
-
9. 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 a particular debug client to a user of the particular 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 a requesting debug client, user input through a second client-specific GUI, including detecting, by the requesting debug client that is not the particular debug client, user input establishing a variable-specific message for a particular variable, the variable-specific message comprising an identifier of the requesting debug client, and content to display in association with the particular variable in a debug client'"'"'s client-specific GUI upon evaluation of the particular variable; generating, by the requesting debug client in dependence upon the detected user input, one or more application-level messages, including generating a request to establish the variable-specific message for the particular variable; sending, by the requesting debug client, the application-level messages to the debug server, including sending the request to establish the variable-specific message for the particular variable to the debug server; receiving, by the particular debug client responsive to the application-level messages, client-specific debug results, including responsive to the variable evaluating debug client'"'"'s request to evaluate a particular variable, receiving the content of the variable-specific message along with the evaluation of the particular variable; and displaying, by the particular debug client in the client-specific GUI, the client-specific debug results, including displaying, by the particular debug client, the identifier of the requesting debug client, and the content of the variable-specific message in association with the particular variable along with the evaluation of the particular variable. - View Dependent Claims (10, 11, 12, 13)
-
-
14. 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, 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:
-
presenting, by a particular debug client to a user of the particular 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 a requesting debug client, user input through a second client-specific GUI, including detecting, by the requesting debug client that is not the particular debug client, user input establishing a variable-specific message for a particular variable, the variable-specific message comprising an identifier of the requesting debug client, and content to display in association with the particular variable in a debug client'"'"'s client-specific GUI upon evaluation of the particular variable; generating, by the requesting debug client in dependence upon the detected user input, one or more application-level messages, including generating a request to establish the variable-specific message for the particular variable; sending, by the requesting debug client, the application-level messages to the debug server, including sending the request to establish the variable-specific message for the particular variable to the debug server; receiving, by the particular debug client responsive to the application-level messages, client-specific debug results, including responsive to the variable evaluating debug client'"'"'s request to evaluate a particular variable, receiving the content of the variable-specific message along with the evaluation of the particular variable; and displaying, by the particular debug client in the client-specific GUI, the client-specific debug results, including displaying, by the particular debug client, the identifier of the requesting debug client, and the content of the variable-specific message in association with the particular variable along with the evaluation of the particular variable. - View Dependent Claims (15, 16, 17, 18)
-
Specification