Abstract
UFO is a new application framework in which programs written in FORMAN, a declarative assertion language, are compiled into execution monitors that run on a virtual machine with extensive monitoring capabilities provided by the Alamo monitor architecture. FORMAN provides an event trace model in which precedence and inclusion relations define a DAG structure that abstracts execution behavior. Compiling FORMAN assertions into hybrid run-time/post-mortem monitors allows substantial speed and size improvements over post-mortem analyzers. The UFO compiler generates code that computes the minimal projection of the DAG necessary for a given set of assertions. UFO enables fully automatic execution monitoring of real programs. The approach is non-intrusive with respect to program source code and provides a high level of abstraction for monitoring and debugging activities. The ability to compile suites of debugging rules into efficient monitors, and apply them generically to different programs, enables long-overdue breakthroughs in program debugging.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Communications of the ACM, vol. 4 (1997)
Brooks, F.: The Mythical Man-Month. Addison-Wesley, Reading (1975)
Auguston, M.: Program Behavior Model Based on Event Grammar and its Application for Debugging Automation. In: Proceedings of the 2nd Int’l Workshop on Automated and Algorithmic Debugging, Saint-Malo, France, May 1995, pp. 277–291 (1995)
Auguston, M., Gates, A., Lujan, M.: Defining a Program Behavior Model for Dynamic Analyzers. In: Proceedings of the 9th International Conference on Software Engineering and Knowledge Engineering, SEKE 1997, Madrid, Spain, June 1997, pp. 257–262 (1997)
Auguston, M.: Lightweight semantics models for program testing and debugging automation. In: Proceedings of the 7th Monterey Workshop, June 2000, pp. 23–31 (2000)
Jeffery, C.L.: Program Monitoring and Visualization: an Exploratory Approach. Springer, New York (1999)
Jeffery, C., Mohamed, S., Pereda, R., Parlett, R.: Programming with Unicon, http://unicon.sourceforge.net
Griswold, R.E., Griswold, M.T.: The Icon Programming Language, 3rd edn. Peer to Peer Communications, San Jose (1997)
Havelund, K., Johnson, S., Rosu, G.: Specification and Error Pattern Based Program Monitoring. In: ESA Workshop on On-Board Autonomy, Noordwijk, Holland (October 2001)
Bates, P.C., Wileden, J.C.: High-Level Debugging of Distributed Systems: The Behavioral Abstraction Approach. Journal of Systems and Software 3, 255–264 (1983)
Olsson, R., Crawford, R., Wilson, W.: A Dataflow Approach to Event-based Debugging. Software – Practice and Experience 21(2), 19–31 (1991)
Ducasse, M.: COCA: An automated debugger for C. In: Proceedings of the 1999 International Conference on Software Engineering, Los Angeles, pp. 504–513 (1999)
Rosenblum, D.: A Practical Approach to Programming with Assertions. IEEE Transactions on Software Engineering 21(1), 19–31 (1995)
Luckham, D.C., Sankar, S., Takahashi, S.: Two-Dimensional Pinpointing: Debugging with Formal Specifications. IEEE Software 8(1), 74–84 (1991)
Luckham, D.C., Bryan, D., Mann, W., Meldal, S., Helmbold, D.P.: An Introduction to Task Sequencing Language, TSL version 1.5, Stanford University , February 1990, pp. 1–68 (1990)
Rosenblum, D.: Specifying Concurrent Systems with TSL. IEEE Software 8(3), 52–61 (1991)
Luckham, D., Vera, J.: An Event-Based Architecture Definition Language. IEEE Transactions on Software Engineering 21(9), 717–734 (1995)
Drusinsky, D.: The Temporal Rover and the ATG Rover. In: Havelund, K., Penix, J., Visser, W. (eds.) SPIN 2000. LNCS, vol. 1885, Springer, Heidelberg (2000)
Golan, M., Hanson, D.: DUEL - A Very High-Level Debugging Language. In: Proceedings of the Winter USENIX Technical Conference, San Diego (January 1993)
Shapiro, E.: Algorithmic Program Debugging, May 1982. MIT Press, Cambridge (1982)
Fritzson, P., Shahmehri, N., Kamkar, M., Gyimothy, T.: Generalized Algorithmic Debugging and Testing. ACM LOPLASÂ 1(4) (December 1992)
Shahmehri, N.: Generalized Algorithmic Debugging, Ph.D. Thesis No. 260, Dept. of Computer and Information Science, Linköping University, S-581 83 Linköping (1991)
Liao, Y., Cohen, D.: A Specificational Approach to High Level Program Monitoring and Measuring. IEEE Transactions on Software Engineering 18(11), 969–978 (1992)
Sosic, R.: Dynascope: a Tool for Program Directing. Sigplan Notices 27(7), 12–21 (1992)
LeDoux Carol, C.H., Parker, D.: Saving Traces for Ada Debugging. Ada in Use. In: Proc. of the Ada International Conference, ACM Ada Letters, vol. 5(2), pp. 97–108 (1985)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Jeffery, C., Auguston, M., Underwood, S. (2004). Towards Fully Automatic Execution Monitoring. In: Wirsing, M., Knapp, A., Balsamo, S. (eds) Radical Innovations of Software and Systems Engineering in the Future. RISSEF 2002. Lecture Notes in Computer Science, vol 2941. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24626-8_14
Download citation
DOI: https://doi.org/10.1007/978-3-540-24626-8_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-21179-2
Online ISBN: 978-3-540-24626-8
eBook Packages: Springer Book Archive