Abstract
We describe a novel approach to the design of portable integrated debugging tools for concurrent languages. Our design partitions the tools set into two categories. The language specific tools take into account the particular features of a programming language for on-line experimenting with and monitoring of distributed programs. The language independent tools support off-line presentation and analysis of the monitored information. The separation of the language independent tools from the language specific tools allows adapting the tools to support debugging for a broad category of concurrent programming languages. The separation of interactive experimentation from off-line analysis provides for efficient exploitation of both user time and machine resources. We present an overview of our design and describe the implementation of a prototype debugging facility for OCCAM.
- 1 BAIARDI F., DE FRANCESCO N. and VAGLIANI G., "Development of a Debugger for a Concurrent Language", IEEE Trans. on Software Engineering, Vol. SE-12, No. 4, pp. 547-553, April 1986. Google ScholarDigital Library
- 2 CLOCKSIN W., and MELLISH C., Programming in Prolog, Springer-Verlag, 1984. Google ScholarDigital Library
- 3 GARCIA MOLINA H., GERMANO F. and KOHLER W, "Debugging a Distributed Computing System", IEEE Trans. on Software Engineering, Vol. SE-10, No. 2, pp. 210-219, March 1984.Google ScholarDigital Library
- 4 GOLDSZMIDT G. "Debugging Tools for Concurrent Languages", M.Sc. Thesis, Technion Israel institute of Technology, in preparation.Google Scholar
- 5 GORDON A., "Ordering Errors in Distributed Programs", Ph.D. Thesis, Univ. of Wisconsin-Madison, TR 611, August 1985. Google ScholarDigital Library
- 6 HALIM N. and PERSHING J., The Yorktown NIL Compiler: Language Reference, December 1985.Google Scholar
- 7 INMOS Limited, OCCAM Programming Manual, Prentice Hall Series on Computer Science, 1984. Google ScholarDigital Library
- 8 JOYCE J., LOMOW G., SLIND K., and UNGER B, "Monitoring Distributed Systems", ACM Trans. on Computer Systems, Vol. 5, No. 2, pp 121-150, May 1987. Google ScholarDigital Library
- 9 KERNIGHAN B. and RITCHIE D., The C Programming Language, Prentice-Hall, Englewood Cliffs, New Jersey. 1978. Google ScholarDigital Library
- 10 LEBLANC R., "Interactive Monitoring of Distributed Systems", GIT Project No. G36-605, Georgia Institute of Technology, July 1986.Google Scholar
- 11 LESK M., "Lex - A Lexical Analyzer Generator", Comp. Sci. TR 39, Bell Laboratories, Murray Hill, New Jersey, October 1975.Google Scholar
- 12 MANNA Z. and PNUELI A., "Verification of concurrent programs: the temporal framework", in The Correcmess Problem in Computer Science, Intl. lecture series in Computer Science, Academic Press, London, pp. 215-273, 1981.Google Scholar
- 13 Reference Manual for the Ada Programming Language, U.S. Department of Defense, Ada Joint Program Office, July 1982.Google Scholar
- 14 ROBBINS A, "The design of a passive monitor for distributed programs", M.Sc. Thesis, Georgia Institute of Technology, TR GIT-ICS-83/21, August 1983.Google Scholar
- 15 SCHIFFENBAUER R., "Interactive Debugging in a Distributed Computational Environment", M.Sc. Thesis, Massachusetts institute of Technology, MIT/LCSffR-264, August 1981. Google ScholarDigital Library
- 16 SMITH E., "A Debugger for Message Based Processes", Software-Practice and Experience, Vol. 15(11), pp. 1073-1086, November 1985.Google ScholarCross Ref
- 17 STROM R. and YEMINI S., "NIL: An Integrated Language and System for Distributed Programming", Proc. of the ACM SIGPLAN Symp. on Programming Language Issues in Software Systems, June 1983. Google ScholarDigital Library
Index Terms
- Interactive blackbox debugging for concurrent languages
Recommendations
Interactive blackbox debugging for concurrent languages
PADD '88: Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debuggingWe describe a novel approach to the design of portable integrated debugging tools for concurrent languages. Our design partitions the tools set into two categories. The language specific tools take into account the particular features of a programming ...
Debugging native extensions of dynamic languages
ManLang '18: Proceedings of the 15th International Conference on Managed Languages & RuntimesMany dynamic programming languages such as Ruby and Python enable developers to use so called native extensions, code implemented in typically statically compiled languages like C and C++. However, debuggers for these dynamic languages usually lack ...
DI: an interactive debugging interpreter for applicative languages
The DI interpreter is both a debugger and interpreter of SISAL programs. Its use as a program interpreter is only a small part of its role; it is designed to be a tool for studying compilation techniques for applicative languages. DI interprets dataflow ...
Comments