Towards Fully Automatic Execution Monitoring

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.

[1]  Y. Liao,et al.  A Specificational Approach to High Level Program Monitoring and Measuring , 1992, IEEE Trans. Software Eng..

[2]  Grigore Rosu,et al.  Specification and Error Pattern Based Program Monitoring , 2001 .

[3]  Klaus Havelund,et al.  SPIN Model Checking and Software Verification , 2000, Lecture Notes in Computer Science.

[4]  David R. Hanson,et al.  DUEL - A Very High-Level Debugging Language , 1993, USENIX Winter.

[5]  David S. Rosenblum A Practical Approach to Programming With Assertions , 1995, IEEE Trans. Software Eng..

[6]  Ralph E. Griswold,et al.  The Icon programming language , 1983 .

[7]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[8]  Richard H. Crawford,et al.  A dataflow approach to event‐based debugging , 1991, Softw. Pract. Exp..

[9]  Ehud Shapiro,et al.  Algorithmic Program Debugging , 1983 .

[10]  Jack C. Wileden,et al.  High-level debugging of distributed systems: The behavioral abstraction approach , 1983, J. Syst. Softw..

[11]  David S. Rosenblum Specifying concurrent systems with TSL , 1991, IEEE Software.

[12]  Rok Sosic,et al.  Dynascope: a tool for program directing , 1992, PLDI '92.

[13]  Peter Fritzson,et al.  Generalized algorithmic debugging and testing , 1991, LOPL.

[14]  Mikhail Auguston Program Behavior Model Based on Event Grammar and its Application for Debugging Automation , 1995, AADEBUG.

[15]  Doron Drusinsky,et al.  The Temporal Rover and the ATG Rover , 2000, SPIN.

[16]  Julekha Dash Peer-to-peer communications , 1996 .

[17]  D. Stott Parker,et al.  Saving traces for Ada debugging , 1985, SIGAda '85.

[18]  Ralph E. Griswold,et al.  History of the Icon programming language , 1996 .

[19]  David C. Luckham,et al.  An Event-Based Architecture Definition Language , 1995, IEEE Trans. Software Eng..

[20]  Clinton L. Jeffery,et al.  Program monitoring and visualization - a exploratory approach , 2011 .

[21]  Sriram Sankar,et al.  Two-dimensional pinpointing: debugging with formal specifications , 1991, IEEE Software.

[22]  D. Stott Parker,et al.  Saving traces for Ada debugging , 1985 .

[23]  Mireille Ducassé,et al.  Coca: an automated debugger for C , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[24]  Mikhail Auguston Lightweight semantics models for program testing and debugging automation , 2000 .

[25]  Nahid Shahmehri,et al.  Generalized algorithmic debugging , 1991 .