Abstract
This paper describes a tool for debugging programs which develop faults after they have been modified or are ported to other computer systems. The tool enhances the traditional debugging approach by automating the comparison of data structures between two running programs. Using this technique, it is possible to use early versions of a program which are known to operate correctly to generate values for comparison with the new program under development. The tool allows the reference code and the program being developed to execute on different computer systems by using open distributed systems techniques. A data visualisation facility allows the user to view the differences in data structures. By using the data flow of the code, it is possible to locate faulty sections of code rapidly. An evaluation is performed by using three case studies to illustrate the power of the technique.
Similar content being viewed by others
References
Abramson, D., Foster, I., Michalakes, J., and Sosic, R. 1995. Relative debugging and its application to the development of large numerical models. IEEE Supercomputing, San Diego.
Abramson, D.A., Dix, M., and Whiting, P. 1991. A study of the shallow water equations on various parallel architectures. 14th Australian Computer Science Conference, 6:1–12, Sydney.
Abramson, D.A. and Sosic, R. 1995. A debugging tool for software evolution. CASE-95, 7th International Workshop on Computer-Aided Software Engineering, Toronto, Ontario, Canada, pp 206–214. Also appeared in Proceedings of 2nd Working Conference on Reverse Engineering, Toronto, Ontario, Canada.
Abramson, D.A., Sosic, R., and Watson, G. Implementation techniques for a parallel relative debugger, to appear, Internatinal Conference on Parallel Architectures and Compilation Techniques—PACT'96, October 20–23, 1996, Boston, Massachusetts, USA.
Adams, E. and Muchnick, S. 1986. Dbxtool: A window-based symbolic debugger for Sun workstations. Software-Practice & Experience, 16(7):653–669.
Anthes, R. 1986. 1986 summary of workshop on the NCAR community climate/Forecast models. Bull. Amer. Meteor. Soc., 67:194–198.
Cheng, D. and Hood, R. 1994. A portable debugger for parallel and distributed programs. Proceedings of Supercomputing 94, Washington, DC, pp. 723–732.
Foster, I. and Michalakes, J. 1993. MPMM: A massively parallel mesoscale model. In Parallel Supercomputing in Atmospheric Science, Geered-R Hoffmann and Tuomo Kauranne (Eds.), pp. 354–363. World Scientific, River Edge, NJ 07661.
Galbreath, N., Gropp, W., and Levine, D. 1993. Applications-driven parallel I/O. Proceedings Supercomputing-93, Portland, Oregon, pp. 462–471, IEEE.
Grell, G., Dudhia, J., and Stauffer, D. 1994. A description of the fifth-generation penn state/NCAR mesoscale model (MM5). Technical Report NCAR/TN-398+STR, National Center for Atmospheric Research, Boulder, Colorado.
Linton, M. 1990. The evolution of Dbx. Proceedings of the Summer 1990, USENIX Conference, pp. 211–220.
McRae, G.J., Russell, A.G., and Harley, R.A. 1992. CIT photochemical airshed model—Users manual. Carnegie Mellon University, Pittsburgh, PA and California Institute of Technology, Pasadena, CA.
Michalakes, J., Canfield, T., Nanjundiah, R., Hammond, S., and Grell, G. Parallel implementation, validation, and performance of MM5. In Parallel Supercomputing in Atmospheric Science, World Scientific, River Edge, NJ 07661.
Moher, T. 1988. PROVIDE: A process visualization and debugging environment. IEEE Transactions on Software Engineering, 14(6):849–857.
Olsson, R., Crawford, R., and Ho, W. 1991. A dataflow approach to event-based debugging. Software-Practice and Experience, 21(2):209–229.
Ramsey, N. and Hanson, D. 1992. A retargetable debugger. Proceedings of SIGPLAN'92 Conference on Programming Language Design and Implementation, pp. 22–31, ACM.
Satterthwaite, E. 1972. Debugging tools for high level languages. Software-Practice and Experience, 2(3): 197–217.
Sosic, R. and Abramson, D.A. GUARD: A Relative Debugger, to appear, Software-Practice Experience.
Sosic, R. 1995. Design and Implementation of Dynascope, a Directing Platform for Compiled Programs. Computing Systems, Spring, 8(2):107–134.
Sosic, R.A. 1995. Procedural Interface for Program Directing, Software-Practice and Experience, 25(7):767–787.
Stallman, R. M. and Pesch, R. H. 1994. Debugging with GDB. Free Software Foundation, Boston.
Stevens, W.R. 1990. Unix Networking Programming. Englewood Cliffs, NJ: Prentice-Hall.
Sun Microsystems, 1990. Debugging Tools Manual. Sun Release 4.1.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Abramson, D., Sosic, R. A debugging and testing tool for supporting software evolution. Autom Software Eng 3, 369–390 (1996). https://doi.org/10.1007/BF00132573
Issue Date:
DOI: https://doi.org/10.1007/BF00132573