This Article 
 Bibliographic References 
 Add to: 
Debugging Concurrent Ada Programs by Deterministic Execution
January 1991 (vol. 17 no. 1)
pp. 45-63

A language-based approach to deterministic execution debugging of concurrent Ada programs is presented. The approach is to define synchronization (SYN)-sequences of a concurrent Ada program in terms of Ada language constructs and to replay such SYN-sequences without the need for system-dependent debugging tools. It is shown how to define a SYN-sequence of a concurrent Ada program in order to provide sufficient information for deterministic execution. It is also shown how to transform a concurrent Ada program P so that the SYN-sequences of previous executions of P can be replayed. This transformation adds an Ada task to P that controls program execution by synchronizing with the original tasks in P. A brief description is given of the implementation of tools supporting deterministic execution debugging of concurrent Ada programs.

[1] V. Banda and R. Volz, "Debugging distributed real-time software," inProc. 5th Workshop Real-Time Software and Operating Systems, May 1988, pp. 66-70.
[2] P. Brinch Hansen, "Reproducible testing of monitors,"Software--Practice and Experience, vol. 8, pp. 721-729, 1978.
[3] A. F. Brindle, R. N. Taylor, and D. F. Martin, "A debugger for Ada tasking,"IEEE Trans. Software Eng., vol. 15, no. 3, pp. 293-304, 1989.
[4] R. H. Carver and K. C. Tai, "Reproducible testing of concurrent programs based on shared variables," inProc. 6th Int. Conf. Distributed Computing Systems, May 1986, pp. 428-433.
[5] R. H. Carver, "Testing, debugging, and analysis of concurrent software," Ph.D. dissertation, North Carolina State Univ., 1989.
[6] R. H. Carver and K. C. Tai, "Deterministic execution testing of concurrent Ada programs," inProc. ACM TRI-Ada89, pp. 528-544.
[7] A. Di Maioet. al., "Execution monitoring and debugging tool for Ada using relational algebra," inProc. Ada Int. Conf. (ACM Ada Lett., vol. V, issue 2, Sept./Oct. 1985), pp. 109-123.
[8] J. Gait, "A probe effect in concurrent programs,"Software-Practice and Experience, vol. 16, no. 3, pp. 225-233, Mar. 1986.
[9] N. Gehani,Ada Concurrent Programming. Englewood Cliffs, NJ: Prentice-Hall, 1984, p. 65.
[10] S. M. German, "Monitoring for deadlock and blocking in Ada tasking,"IEEE Trans. Software Eng., vol. SE-10, no. 6, pp. 764-777, Nov. 1984.
[11] J. Gilles and R. Ford, "A window based debugger for a real time Ada tasking environment," inProc. 5th Washington Ada Symp., June 1988, pp. 59-67.
[12] D. Helmbold and D. Luckham, "Debugging Ada tasking programs,"IEEE Soware, vol. 2, no. 2, pp. 47-57, Mar. 1985.
[13] L. Lamport, "Time, clocks, and the ordering of events in a distributed system,"Commun. ACM, vol. 21, no. 7, pp. 558-565, July 1978.
[14] T. J. LeBlanc and J. M. Meller-Crummey, "Debugging parallel programs with instant replay,"IEEE Trans. Comput., vol. C-36, no. 4, pp. 471-482, Apr. 1987.
[15] D. C. Marinescu, J. E. Lumpp Jr., T. L. Casavant, and H. J. Siegel, "Models for monitoring and debugging tools for parallel and distributed software,"J. Parallel Distributed Comput., June 1990.
[16] C. Mauger and K. Pammett, "An event-driven debugger for Ada," inProc. Ada Int. Conf.(ACM Ada Lett., vol. V, issue 2, Sept./Oct. 1985), pp. 124-135.
[17] C. E. McDowell and D. P. Helmbold, "Debugging concurrent programs,"ACM Comput. Surveys, vol. 21, no. 4, pp. 593-622, Dec. 1989.
[18] M. R. Patwardhan and K. C. Tai, "A debugging environment for concurrentC," Dep. Comput. Sci., North Carolina State Univ., Tech. Rep. TR-88-12, 1988.
[19] B. Plattner, "Real-time execution monitoring,"IEEE Trans. Software Eng., vol. SE-10, no. 6, pp. 756-764, Nov. 1984.
[20] K. C. Tai, "On testing concurrent programs," inProc. COMPSAC 85, Oct. 1985, pp. 310-317.
[21] K. C. Tai, "A graphical representation of rendezvous sequences of concurrent Ada programs,"ACM Ada Lett., vol. VI, no. 1, pp. 94-103, Jan./Feb. 1986.
[22] K. C.Tai and E. E. Obaid, "Reproducible testing of Ada tasking programs," inProc. IEEE 2nd Int. Conf. Ada Applications and Environment, Apr. 1986, pp. 69-79.
[23] K. C. Tai and S. Ahuja, "Reproducible testing of communication software," inProc. IEEE COMPSAC '87, Oct. 1987, pp. 331-337.
[24] K. C. Tai and R. H. Carver, "Testing and debugging of concurrent software by deterministic execution," Dep. Comput. Sci., North Carolina State Univ., Tech. Rep. TR-87-19, 1988; portions of this report were published inProc. 1989 Pacific Northwest Software Quality Conf., pp. 170-182.
[25] K. C. Tai, R. H. Carver, and E. E. Obaid, "Deterministic execution debugging of concurrent Ada programs," inProc. 13th IEEE Int. Computer Software and Applications Conf., Sept. 1989, pp. 102-109.
[26] W. N. Taylor, R. H. Carver, and K. C. Tai, "An implementation of deterministic execution testing and debugging tools for concurrent Ada programs," inProc. 8th Annu. Nat. Conf. Ada Technology, 1990, pp. 419-422; more details can be found in Taylor's M.S. thesis, "Debugging concurrent Ada programs," North Carolina State Univ., 1988.
[27] J. P. Tsai, K. Y. Fang, and H. Y. Chen, "A noninvasive architecture to monitor real-time distributed systems,"Computer, vol. 23, no. 3, pp. 11-23, Mar. 1990.
[28] S. Utter and C. M. Pancake, "A bibliography of parallel debuggers,"ACM SIGPLAN Notices, vol. 24, no. 11, pp. 29-42, Nov. 1989.
[29] N. Wirth, "Toward a discipline of real-time programming,"Commun. ACM, vol. 20, no. 8, Aug. 1977.
[30] L. Wittie, "Debugging distributed C programs by real time replay,"ACM SIGPLAN/SIGOPS Workshop Parallel and Distributed Debugging,May 1988, pp. 57-67.

Index Terms:
synchronisation sequences; concurrent Ada programs; deterministic execution debugging; Ada language constructs; SYN-sequences; sufficient information; previous executions; transformation; program execution; tools; Ada; parallel programming; program debugging
K.-C. Tai, R.H. Carver, E.E. Obaid, "Debugging Concurrent Ada Programs by Deterministic Execution," IEEE Transactions on Software Engineering, vol. 17, no. 1, pp. 45-63, Jan. 1991, doi:10.1109/32.67578
Usage of this product signifies your acceptance of the Terms of Use.