skip to main content
article
Free Access

High-level language debugging for concurrent programs

Published:01 November 1990Publication History
Skip Abstract Section

Abstract

An integrated system design for debugging distributed programs written in concurrent high-level languages is described. A variety of user-interface, monitoring, and analysis tools integrated around a uniform process model are provided. Because the tools are language-based, the user does not have to deal with low-level implementation details of distribution and concurrency, and instead can focus on the logic of the program in terms of language-level objects and constructs. The tools provide facilities for experimentation with process scheduling, environment simulation, and nondeterministic selections. Presentation and analysis of the program's behavior are supported by history replay, state queries, and assertion checking. Assertions are formulated in linear time temporal logic, which is a logic particularly well suited to specify the behavior of distributed programs.

The tools are separated into two sets. The language-specific tools are those that directly interact with programs for monitoring of and on-line experimenting with distributed programs. The language-independent tools are those that support off-line presentation and analysis of the monitored information. This separation makes the system applicable to a wide range of programming languages. In addition, the separation of interactive experimentation from off-line analysis provides for efficient exploitation of both user time and machine resources. The implementation of a debugging facility for OCCAM is described.

References

  1. 1 ACM SIGPLAN/SIGOPS. Proceedings of the Workshop on Parallel and Distributed Debugging. (Madison, Wisc., May 1988). Google ScholarGoogle Scholar
  2. 2 Reference Manual for the Ada Programming Language. U.S. Department of Defense, Ada Joint Program Office, July 1982.Google ScholarGoogle Scholar
  3. 3 BAIARDI, F., DE FRANCESCO, N., AND VAGLIANI, G. Development of a debugger for a concurrent language. IEEE Trans. Softw. Eng. SE-12, 4 (April 1986), 547-553. Google ScholarGoogle Scholar
  4. 4 BATES, P., AND WILEDEN, J.C. An approach to high-level debugging of distributed systems. In Proceedings of the A CM SIGSOFT/SIGPLAN Software Engineering Symposium on High-Level Debugging (Aug. 1983), pp. 107-111. Google ScholarGoogle Scholar
  5. 5 BRUEGGE, S., AND HIBBARD, P. Generalized path expressions: A high level debugging mechanism. In Proceedings of the A CM SIGSOFT / SIGPLAN Software Engineering Symposium on High-Level Debugging (Aug. 1983), pp. 34-44. Google ScholarGoogle Scholar
  6. 6 CLOCKSIN, W., AND MELLISH, C. Programming in Prolog. Springer-Verlag, New York, 1984. Google ScholarGoogle Scholar
  7. 7 DEUTSCH, L. P., AND LAMPSON, B.W. An online editor. Commun. A CM 10, 12 (Dec. 1967), 793-803. Google ScholarGoogle Scholar
  8. 8 FIDGE, C.J. Partial orders for parallel debugging. In Proceedings of the A CM Workshop on Parallel and Distributed Debugging (Madison, Wisc., May 1988), pp. 183-194. Google ScholarGoogle Scholar
  9. 9 GARCIA-MOLINA, H., GERMANO, F., AND KOHLER, W. Debugging a distributed computing system. IEEE Trans. Soflw. Eng. SE-IO, 2 (March 1984), 210-219.Google ScholarGoogle Scholar
  10. 10 GOLDSZMIDT, G. Debugging tools for concurrent languages, M.S. thesis, Technion, Israel Institute of Technology, Dec. 1987.Google ScholarGoogle Scholar
  11. 11 HARTER, P. K., HEIMBIGNER, D. M., AND KING, R. IDD: An interactive distributed debugger. In Proceedings of the Fifth International Conference on Distributed Computing Systems , (May 1985), pp. 498-506.Google ScholarGoogle Scholar
  12. 12 INMOS Limited. OCCAM Programming Manual. Prentice-Hall Series on Computer Science, 1984. Google ScholarGoogle Scholar
  13. 13 JOYCE, J., LOMOW, G., SLIND, K., AND UNGER, B. Monitoring distributed systems. ACM Trans. Comput. Syst. 5, 2 (May 1987), 121-150. Google ScholarGoogle Scholar
  14. 14 KERNIGI-IAN, B., AND RITCHIE, D. The C Programming Language. Prentice-Hall, Englewood Cliffs, N.J., 1978. Google ScholarGoogle Scholar
  15. 15 LAMPORT, L~ Time, clocks and the ordering of events in a distributed system. Commun. ACM 21, 7 (July 1978), 558-565. Google ScholarGoogle Scholar
  16. 16 LEBLANC, R., AND ROBBINS, A. D. Event driven monitoring of distributed computing systems. In Proceedings of the Fifth International Conference on Distributed Computing Systems (May 1985), pp. 512-522.Google ScholarGoogle Scholar
  17. 17 LESK, M. Lex--A lexical analyzer generator. Computer Science TR 39, Bell Labs., Murray Hill, N.J., Oct. 1975.Google ScholarGoogle Scholar
  18. 18 McDOWELL, C. F., AND HELMBOLD, D.P. Debugging concurrent programs. ACM Comput. Surv. 21, 4 (Dec. 1989), 593-622. Google ScholarGoogle Scholar
  19. 19 MANNA, Z., AND PNUELI, A. Verification of concurrent programs: The temporal framework. In the Correctness Problem in Computer Science, International Lecture Series in Computer Science, Academic Press, London, 1981, pp. 215-273.Google ScholarGoogle Scholar
  20. 20 SCHIFFENBAUER, R. Interactive debugging in a distributed computational environment. M.S. thesis, MIT, MIT/LCS/TR-264, Aug. 1981. Google ScholarGoogle Scholar
  21. 21 SMITH, E. A debugger for message based processes. Softw. Pract. Exper. 15, 11 (Nov. 1985), 1073-1086.Google ScholarGoogle Scholar
  22. 22 SNODGRASS, R. A relational approach to monitoring complex systems. A CM Trans. Comput. Syst. 6, 2 (May 1988), 157-196. Google ScholarGoogle Scholar
  23. 23 STaOM, R., AND YEMINI, S. NIL: An integrated language and system for distributed programming. In Proceedings of the A CM SIGPLAN Symposium on Programming Language Issues in Software Systems (June 1983). Google ScholarGoogle Scholar
  24. 24 UTTER, S., AND PANCAKE, C.M. A bibliography of parallel debuggers. SIGPLAN Not. 24, 11 (Nov. 1989), 29-42.Google ScholarGoogle Scholar
  25. 25 WELCH, T.A. A technique for high performance data compression. IEEE Computer 17, 6 (June 1984), 8-19.Google ScholarGoogle Scholar

Index Terms

  1. High-level language debugging for concurrent programs

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader