This Article 
 Bibliographic References 
 Add to: 
A Noninterference Monitoring and Replay Mechanism for Real-Time Software Testing and Debugging
August 1990 (vol. 16 no. 8)
pp. 897-916

A noninterference monitoring and replay mechanism using the recorded execution history of a program to control the replay of the program behavior and guarantee the reproduction of its errors is presented. Based on this approach, a noninterference monitoring architecture has been developed to collect the program execution data of a target real-time software system without affecting its execution. A replay mechanism designed to control the reproduction of the program behavior as well as the examination of the states of the target system and its behavior is presented. The monitoring system has been implemented using a Motorola 68000 computer in a Unix system environment. An example is used to illustrate how the mechanism detects timing errors of real-time software systems.

[1] B. Dasarathy, "Timing constraints of real-time systems: Constructs for expressing them, methods of validating them,"IEEE Trans. Software Eng., vol. SE-11, no. 1, pp. 80-86, Jan. 1985.
[2] R. H. Carver and K. C. Tai, "Reproducible testing of concurrent programs based on shared variables," inProc. 6th Int. Conf. Distributed Computing Systems, 1986, pp. 428-433.
[3] R. Curtis and L. Wittie, "BugNet: A debugging system for parallel programming environments," inProc. 3rd Int. Conf. Distributed Computing Systems, October 1982, pp. 394-399.
[4] S. I. Feldman and C. B. Brown, "IGOR: A system for program debugging via reversible execution," inProc. ACM SIGPLAN SIGOPS Workshop Parallel and Distributed Debugging, May 1988, pp. 112- 123.
[5] N. K. Gupta and R. E. Seviora, "An expert system approach to real time system debugging," inProc. First Conf. Artificial Intelligence Applications, 1984, pp. 336-343.
[6] J. M. Stone, "Debugging concurrent process: A case study," inProc. ACM SIGPLAN '88 Conf. Programming Language Design and Implementation, June 1988, pp. 145-153.
[7] S. Tsuruta, K. Fukuoka, S. Miyamoto, and S. Mitsumori, "A debugging tool for real-time software: The non repeated runs approach," inProc. IFAC Real-Time Programming, 1981, pp. 49-56.
[8] H. Garcia-Molina, F. Germano, Jr., and W. H. Kohler, "Debugging a distributed computing system,"IEEE Trans. Software Eng., vol. SE-10, no. 2, pp. 210-219, Mar. 1984.
[9] D. Haban, "DTM-A method for testing distributed systems," inProc. 6th Symp. Reliability in Distributed Software and Database Systems, 1987, pp. 66-73.
[10] D. Haban and D. Wybranietz, "A hybrid monitor for behavior and performance analysis of distributed systems,"IEEE Trans. Software Eng., vol. 16, no. 2, pp. 197-211, Feb. 1990.
[11] D. Helmbold and D. Luckham, "Debugging Ada tasking programs,"IEEE Software, pp. 47-57, Mar. 1985.
[12] J. Joyce, G. Lomow, K. Slind, and B. Unger, "Monitoring distributed systems,"ACM Trans. Comput. Syst., vol. 5, no. 2, pp. 121- 150, May 1987.
[13] 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.
[14] B. P. Miller, and J.-D. Choi, "A mechanism for efficient debugging of parallel programs," inProc. ACM SIGPLAN '88 Conf. Programming Language Design and Implementation, June 1988, pp. 135-144.
[15] B. Plattner, "Real-time execution monitoring,"IEEE Trans. Software Eng., vol. SE-10, no. 6, pp. 756-764, Nov. 1984.
[16] K. C. Tai and S. Ahuja, "Reproducible testing of communication software," inProc. 11th IEEE Int. Computer Software and Applications Conf., Oct. 1987, pp. 331-337.
[17] 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.
[18] D. C. Marinescu, J. E. Lumpp, Jr., T. L. Casavant, and H. J. Siegel, "A model for monitoring and debugging parallel and distributed software," inProc. 13th IEEE Int. Computer Software and Applications Conf., Sept. 1989, pp. 81-88.
[19] B. P. Miller, C. Macrander, and S. Sechrest, "A distributed programs monitor for Berkeley UNIX,"Software--Practice and Experience, vol. 16, no. 2, pp. 183-200, Feb. 1986.
[20] R. Snodgrass, "A relational approach to monitoring complex systems,"ACM Trans. Comput. Syst., vol. 6, no. 2, pp. 157-196, May 1988.
[21] H. Tokuda, M. Kotera, and C. W. Mercer, "A real-time monitor for a distributed real-time operating system,"ACM SIGPLAN Notices,vol. 24, no. 1, pp. 68-77, Jan. 1989.
[22] A. Mink and G. Nacht, "Performance measurement of a shared-memory multiprocessor using hardware instrumentation," inProc. 22nd Hawaii Int. Conf. System Sciences, Jan. 1989, pp. 267-276.
[23] U. Hercksen, R. Klar, W. Kleinoder, and F. Kneibl, "Measuring simultaneous events in a multiprocessor system,"Perform. Eval. Rev., vol. 11, no. 4, pp. 77-88, 1982.
[24] S. A. Fineberg, T. L. Casavant, T. Schwederski, and H. J. Siegel, "Non-deterministic instruction time experiment on the PASM system prototype," inProc. 1988 Int. Conf. Parallel Processing, Aug. 1988, pp. 444-451.
[25] H. J. Siegel, L. J. Siegel, F. C. Kemmerer, D. T. Mueller, H. E. Smalley, and S. D. Smith, "PASM: A partitionable SIMD/MIMD system for image processing and pattern recognition,"IEEE Trans. Comput., vol. C-30, no. 12, pp. 934-947, Dec. 1981.
[26] Z. Segall and L. Rudolph, "PIE: A programming and instrumentation environment for parallel processing,"IEEE Software, pp. 22-37, Nov. 1985.
[27] C. Maples, "Analyzing software performance in a multiprocessor environment,"IEEE Software, pp. 50-63, July 1985.
[28] B. P. Miller, "DPM: A measurement system for distributed programs,"IEEE Trans. Comput., vol. 37, no. 2, pp. 243-248, Feb. 1988.
[29] C.-Q. Yang and B. P. Miller, "Performance measurement for parallel and distributed programs: A structured and automatic approach,"IEEE Trans. Software Eng., vol. 15, no. 12, pp. 1615-1629, Dec. 1989.
[30] J. M. Mellor-Crummey and T. J. LeBlanc, "A software instruction counter," inProc. Third Int. Conf. Architectural Support for Programming Languages and Operating Systems, Apr. 1989, pp. 78-86.
[31] J. 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.
[32] E. W. Dijkstra, "Guarded commands, nondeterminacy and formal derivation of programs,"Commun. ACM, vol. 18, no. 8, pp. 453- 457, 1975.
[33] A. J. Gordon and R. A. Finkel, "Handling timing errors in distributed programs,"IEEE Trans. Software Eng., vol. 14, no. 10, pp. 1525-1535, Oct. 1988.
[34] J. J. P. Tsai, K. Y. Fang, and H. Y. Chen, "A knowledge-based debugger for real-time software systems based on a noninterference testing architecture," inProc. 13th IEEE Int. Computer Software and Applications Conf., Sept. 1989, pp. 642-649.

Index Terms:
real-time software testing; recorded execution history; program behavior; noninterference monitoring architecture; program execution data; target real-time software system; replay mechanism; monitoring system; Motorola 68000 computer; Unix system environment; timing errors; real-time software systems; program debugging; program testing; real-time systems.
J.J.P. Tsai, K.-Y. Fang, H.-Y. Chen, Y.-D. Bi, "A Noninterference Monitoring and Replay Mechanism for Real-Time Software Testing and Debugging," IEEE Transactions on Software Engineering, vol. 16, no. 8, pp. 897-916, Aug. 1990, doi:10.1109/32.57626
Usage of this product signifies your acceptance of the Terms of Use.