Abstract
The Topaz TeleDebug (TTD) facility provides a remote debugging capability supporting software development in the Topaz environment. Topaz is a software environment providing rich support for programming in Modula2+, and extended version of Modula 2. TTD allows uniform use of the same high level source language debugger for all debugging (both local and remote) of software at all levels of the system. Special care has been taken to maximize TTD's reliability and robustness. Our experience suggests that such a facility can be extremely useful, very dependable and quite inexpensive. It also suggests that the implementation issues can be somewhat subtle, and that correct choices in this area are vital if the promise of such a scheme is to be fully realized. This paper focuses on those implementation issues in a fair amount of detail, analyzing the limitations of our first TTD implementation and the redesign that produced a second, improved version. Our main conclusion is that the target (debuggee) end of such a facility should be implemented at the lowest possible level in the operating system, and that a uniformly applicable remote invocation (e.g. remote procedure call) facility is key to enabling this approach. We also conclude that strict adherence to layered information hiding can lead to serious difficulties in the implementation of a remote debugging protocol.
The discussion should be of particular interest to others designers of remote debugging facilities. While the paper does not devote much attention to higher level issues (e.g. novel user interfaces for debugging concurrent or distributed programs) most of the ideas discussed should be applicable to a wide class of debuggers, including those with higher aspirations for debugging such programs.
- 1 F. Andreis, D. Briatico and G. Ingoglia. A tool for real-time debug: Cassandra. 3rd Conference-Exhibition on Software Engineering. Versailles, France. May 1986.Google Scholar
- 2 T. Cargill. Implementation of the Blit Debugger. Software~Practice and Experience 15(2), February 1985.Google Scholar
- 3 lt. Cooper. Debugging Concurrent and Distributed Programs. PhD Dissertation, University of Cambridge (to appear).Google Scholar
- 4 D. De Witt, R. Finkel, and M. Solomon. The Crystal multicomputer: design and implementation experience. IEEE Trans. Software Eng. 13(8), August 1987. Google ScholarDigital Library
- 5 P. Fritzson. Preliminary Experience from the DICE system, a Distributed Incremental Compiling Environment. Proc ACM SIG- SOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments. Pittsburg, PA. April 1984. Google ScholarDigital Library
- 6 M. Himelstein and P. Rowell. Multi-process debugging. Proceedings USENIX Association Summer Conference. June 1985.Google Scholar
- 7 P. McJones and G. Swart. Evolving the Unix System Interface to Support Multithreaded Programs. Digital Equipment Corporation, Systems Research Center, Research Report 21. September 1987.Google Scholar
- 8 M. Richards, A Aylward, P. Bond, R. Evans and B. Knight. Tripos~A Portable Operating System for Mini-computers. Software~ Practice and Experience 9(7), July 1985.Google Scholar
- 9 P. tLovner, R. Levin and J. Wick. On Extending Modula-2 For Building Large, Integrated Systems. Digital Equipment Corporation, Systems Research Center, Research Report 3. January 1985.Google Scholar
- 10 C. Snow and W. Wong. Interactive tZemote Source-Level Debugging Tools Using Interface Monitoring. Technical Report 228, Computing Laboratory, Newcastle upon Tyne University. 1987.Google Scholar
- 11 D. Swinehart, P. Zellweger, R. Beach, and R. Hagmann. A structural view of the Cedar programming environment, ACM Trans. Programming Languages and Systems, 8(4), November 1986. Google ScholarDigital Library
- 12 C. Thacker, L. Stewart, and E. Satterthwaite. Firefly: A Multiprocessor Workstation. Digital Equipment Corporation, Systems Research Center, Research Report 23. December 1987.Google Scholar
- 13 Xerox Corporation. Xerox Development Environment Users Guide. September 1985.Google Scholar
Index Terms
- Experience with topaz telebugging
Recommendations
Experience with topaz telebugging
PADD '88: Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debuggingThe Topaz TeleDebug (TTD) facility provides a remote debugging capability supporting software development in the Topaz environment. Topaz is a software environment providing rich support for programming in Modula2+, and extended version of Modula 2. TTD ...
Experience report: Evaluating the effectiveness of decision trees for detecting code smells
ISSRE '15: Proceedings of the 2015 IEEE 26th International Symposium on Software Reliability Engineering (ISSRE)Developers continuously maintain software systems to adapt to new requirements and to fix bugs. Due to the complexity of maintenance tasks and the time-to-market, developers make poor implementation choices, also known as code smells. Studies indicate ...
An Experience Report on Using Code Smells Detection Tools
ICSTW '11: Proceedings of the 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation WorkshopsDetecting code smells in the code and consequently applying the right refactoring steps when necessary is very important to improve the quality of the code. Different tools have been proposed for code smell detection, each one characterized by ...
Comments