摘要 |
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 application-level messages, including a request from a requesting debug client to notify other debug clients of an expansion of a multi-member variable; routing the application-level messages among the debug clients, the debug administrator, and the back-end debugger, including providing distributed control of the back-end debugger to the debug clients and distributing, to the other debug clients, a notification of the expansion of the multi-member variable; and returning to the debug clients in response to the application-level messages routed to the back-end debugger, client-specific debug results. |
主权项 |
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 notify other debug clients of an expansion of a multi-member variable, the request to notify other debug clients of an expansion of a multi-member variable comprising a DISTRIBUTE REQUEST message type, a specification of intended recipients of data to distribute including an identification of each of the other debug clients, and a payload to distribute, the payload comprising a notification of the expansion of the multi-member 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, including providing distributed control of the back-end debugger to the debug clients with application-level messages routed to the back-end debugger and distributing, to the other debug clients, a notification of the expansion of the multi-member variable, including sending, to each of the other debug clients specified as intended recipients of the application-level message having the DISTRIBUTE REQUEST message type, a reply comprising an application-level message having a REQUEST REPLY message type and the payload of the application-level message having the DISTRIBUTE REQUEST message type; 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. |