Neutral debugging using grafts

Abstract Debugging distributed applications expressed using message passing parallelism is inherently difficult. We introduce two mechanisms that make this task easier: grafts and spies. A graft is a process that is inserted 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 message. We have proven that spies do not change the behaviour of the original processes. In this paper we introduce grafts and spies and illustrate their use by means of an example.

[1]  Serge Chaumette,et al.  A Development Environment for Distributed Systems , 1991, EDMCC.

[2]  S. Chaumette,et al.  A software environment for programming distributed memory machines , 1992, Proceedings of the Twenty-Fifth Hawaii International Conference on System Sciences.

[3]  Henri E. Bal,et al.  Programming languages for distributed computing systems , 1989, CSUR.

[4]  David May,et al.  Communicating Process Architecture: Transputers and Occam , 1986, Future Parallel Computers.

[5]  Edsger W. Dijkstra,et al.  Guarded commands, nondeterminacy and formal derivation of programs , 1975, Commun. ACM.

[6]  Gérard Boudol,et al.  Algèbre de Processus et Synchronisation , 1984, Theor. Comput. Sci..

[7]  C. A. R. Hoare,et al.  Communicating Sequential Processes (Reprint) , 1983, Commun. ACM.

[8]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.