Debugging distributed applications expressed using message passing par
allelism is inherently difficult. We introduce two mechanisms that mak
e this task easier: grafts and spies. A graft is a process that is ins
erted in a communication channel to work with the messages carried by
this channel. The use of grafts does not require recompilation of the
application to debug. A spy is a graft that does not modify any messag
e. We have proven that spies do not change the behaviour of the origin
al processes. In this paper we introduce grafts and spies and illustra
te their use by means of an example.