Debug controls for debugging a distributed application are included in
messages that are also used by the distributed application to transport
data. A debug initiator causes debug controls to be inserted in the
header portion of a message that is being transported across a
distributed system. The debug initiator may insert debug controls
directly or may cause a message router that receives the message to merge
debug controls into the message. The message router may receive debug
controls from the debug initiator or from configuration files that are
maintained at the message router. The message, which now includes
distributed application data and debug controls, is routed to a message
recipient. The message recipient accesses the message to identify debug
functions that are to be performed at the message recipient. The message
recipient performs at least one of the identified debug functions.