Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

Debugging Concurrent Ada Programs by Deterministic Execution

Published: 01 January 1991 Publication History

Abstract

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.

References

[1]
{1} V. Banda and R. Volz, "Debugging distributed real-time software," in Proc. 5th Workshop Real-Time Software and Operating Systems, May 1988, pp. 66-70.
[2]
{2} P. Brinch Hansen, "Reproducible testing of monitors," Software--Practice and Experience, vol. 8, pp. 721-729, 1978.
[3]
{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]
{4} R. H. Carver and K. C. Tai, "Reproducible testing of concurrent programs based on shared variables," in Proc. 6th Int. Conf. Distributed Computing Systems, May 1986, pp. 428-433.
[5]
{5} R. H. Carver, "Testing, debugging, and analysis of concurrent software," Ph.D. dissertation, North Carolina State Univ., 1989.
[6]
{6} R. H. Carver and K. C. Tai, "Deterministic execution testing of concurrent Ada programs," in Proc. ACM TRI-Ada89, pp. 528-544.
[7]
{7} A. Di Maio et. al., "Execution monitoring and debugging tool for Ada using relational algebra," in Proc. Ada Int. Conf. (ACM Ada Lett., vol. V, issue 2, Sept./Oct. 1985), pp. 109-123.
[8]
{8} J. Gait, "A probe effect in concurrent programs," Software-Practice and Experience, vol. 16, no. 3, pp. 225-233, Mar. 1986.
[9]
{9} N. Gehani, Ada Concurrent Programming. Englewood Cliffs, NJ: Prentice-Hall, 1984, p. 65.
[10]
{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]
{11} J. Gilles and R. Ford, "A window based debugger for a real time Ada tasking environment," in Proc. 5th Washington Ada Symp., June 1988, pp. 59-67.
[12]
{12} D. Helmbold and D. Luckham, "Debugging Ada tasking programs," IEEE Soware, vol. 2, no. 2, pp. 47-57, Mar. 1985.
[13]
{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]
{14} T.J. LeBlanc and J. M. Mellor-Crummey, "Debugging parallel programs with instant replay," IEEE Trans. Comput., vol. C-36, no. 4, pp. 471-482, Apr. 1987.
[15]
{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]
{16} C. Mauger and K. Pammett, "An event-driven debugger for Ada," in Proc. Ada Int. Conf. (ACM Ada Lett., vol. V, issue 2, Sept./Oct. 1985), pp. 124-135.
[17]
{17} C. E. McDowell and D. P. Helmbold, "Debugging concurrent programs," ACM Comput. Surveys, vol. 21, no. 4, pp. 593-622, Dec. 1989.
[18]
{18} M. R. Patwardhan and K. C. Tai, "A debugging environment for concurrent C," Dep. Comput. Sci., North Carolina State Univ., Tech. Rep. TR-88-12, 1988.
[19]
{19} B. Plattner, "Real-time execution monitoring," IEEE Trans. Software Eng., vol. SE-10, no. 6, pp. 756-764, Nov. 1984.
[20]
{20} K. C. Tai, "On testing concurrent programs," in Proc. COMPSAC 85, Oct. 1985, pp. 310-317.
[21]
{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]
{22} K. C. Tai and E. E. Obaid, "Reproducible testing of Ada tasking programs," in Proc. IEEE 2nd Int. Conf. Ada Applications and Environment, Apr. 1986, pp. 69-79.
[23]
{23} K. C. Tai and S. Ahuja, "Reproducible testing of communication software," in Proc. IEEE COMPSAC '87, Oct. 1987, pp. 331-337.
[24]
{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 in Proc. 1989 Pacific Northwest Software Quality Conf., pp. 170-182.
[25]
{25} K. C. Tai, R. H. Carver, and E. E. Obaid, "Deterministic execution debugging of concurrent Ada programs," in Proc. IEEE COMPSAC '89, pp. 102-109.
[26]
{26} W. N. Taylor, R. H. Carver, and K. C. Tai, "An implementation of deterministic execution testing and debugging tools for concurrent Ada programs," in Proc. 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]
{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]
{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]
{29} N. Wirth, "Towards a discipline of real-time programming," Commun. ACM, vol. 20, no. 8, pp. 577-583, Aug. 1977.
[30]
{30} L. Wittie, "Debugging distributed C programs by real time replay," ACM SIGPLAN/SIGOPS Workshop Parallel and Distributed Debugging, May 1988, pp. 57-67.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering  Volume 17, Issue 1
January 1991
93 pages

Publisher

IEEE Press

Publication History

Published: 01 January 1991

Author Tags

  1. Ada
  2. Ada language constructs
  3. SYN-sequences
  4. concurrent Ada programs
  5. deterministic execution debugging
  6. parallel programming
  7. previous executions
  8. program debugging
  9. program execution
  10. sufficient information
  11. synchronisation sequences
  12. tools
  13. transformation

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 18 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2018)JPRACM SIGSOFT Software Engineering Notes10.1145/3149485.314949442:4(1-5)Online publication date: 11-Jan-2018
  • (2018)Stateless techniques for generating global and local test oracles for message-passing concurrent programsJournal of Systems and Software10.1016/j.jss.2017.11.026136:C(237-265)Online publication date: 1-Feb-2018
  • (2016)A systematic review of approaches for testing concurrent programsConcurrency and Computation: Practice & Experience10.1002/cpe.371128:5(1572-1611)Online publication date: 10-Apr-2016
  • (2010)A class library for implementing, testing, and debugging concurrent programsInternational Journal on Software Tools for Technology Transfer (STTT)10.5555/3220893.322107012:1(69-88)Online publication date: 1-Feb-2010
  • (2010)Checking experiments for stream X-machinesTheoretical Computer Science10.1016/j.tcs.2010.05.014411:37(3372-3385)Online publication date: 1-Aug-2010
  • (2006)Reachability Testing of Concurrent ProgramsIEEE Transactions on Software Engineering10.1109/TSE.2006.5632:6(382-403)Online publication date: 1-Jun-2006
  • (2005)Selective capture and replay of program executionsProceedings of the third international workshop on Dynamic analysis10.1145/1083246.1083251(1-7)Online publication date: 17-May-2005
  • (2005)Selective capture and replay of program executionsACM SIGSOFT Software Engineering Notes10.1145/1082983.108325130:4(1-7)Online publication date: 17-May-2005
  • (2003)General Test Result Checking with Log File AnalysisIEEE Transactions on Software Engineering10.1109/TSE.2003.121432729:7(634-648)Online publication date: 1-Jul-2003
  • (2002)Notes on Nondeterminism in Message Passing ProgramsProceedings of the 9th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface10.5555/648139.749503(357-367)Online publication date: 29-Sep-2002
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media