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, application-level messages including receiving, from a requesting debug client, a request to establish a private debug session of the debuggee; routing, by the message router, the application-level messages among the debug clients, the debug administrator, and the back-end debugger, including forwarding, to the back-end debugger, the request to establish a private debug session of the debuggee; and; 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 establishing the private debug session of the debuggee for the requesting debug client.