A Monitoring Language for Run Time and Post-Mortem Behavior Analysis and Visualization

UFO is a new implementation of FORMAN, a declarative monitoring language, in which rules are compiled into execution monitors that run on a virtual machine supported by the Alamo monitor architecture. FORMAN's event trace model uses precedence and inclusion relations to define a DAG structure that abstracts execution behavior. Compiling FORMAN rules into hybrid run-time/post-mortem monitors gives substantial speed and size improvements over pure post- mortem analyzers that operate on the event trace DAG. The UFO optimizing compiler generates code that computes, at run-time when possible, the minimal projection of the DAG necessary for a given set of assertions. UFO enables fully automatic execution monitoring of realistic size programs. The approach is non-intrusive with respect to program source code. The ability to compile suites of debugging and program visualization rules into efficient monitors, and apply them generically to different programs, will enable long- overdue breakthroughs in program debugging automation.

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

[2]  Steven P. Reiss Bee/Hive: A Software Visualization Back End , 2001 .

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

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

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

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

[7]  Brad A. Myers INCENSE: A system for displaying data structures , 1983, SIGGRAPH.

[8]  Andreas Zeller,et al.  Visualizing Memory Graphs , 2001, Software Visualization.

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

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

[11]  Christopher D. Hundhausen,et al.  A Language and System for Constructing and Presenting Low Fidelity Algorithm Visualizations , 2001, Software Visualization.

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

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

[14]  Ilan Shimshoni,et al.  MAVIS: a multi-level algorithm visualization system within a collaborative distance learning environment , 2002, Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments.

[15]  Nick Mitchell,et al.  Visualizing the Execution of Java Programs , 2001, Software Visualization.

[16]  Michael Jünger,et al.  Graph Drawing Algorithm Engineering with AGD , 2001, Software Visualization.

[17]  Sougata Mukherjea,et al.  Toward visual debugging: integrating algorithm animation capabilities within a source-level debugger , 1994, TCHI.

[18]  Shmuel Katz,et al.  Interactive blackbox debugging for concurrent languages , 1988, PADD '88.

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

[20]  Clinton Jeffery,et al.  A framework for automatic debugging , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

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

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

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

[24]  Guido Rößling Towards Intelligent Tutoring in Algorithm Visualization , 2002 .

[25]  Ambuj K. Singh,et al.  Dynamic Query-Based Debugging of Object-Oriented Programs , 2004, Automated Software Engineering.

[26]  John Stasko,et al.  Visualization for Fault Localization , 2003 .

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

[28]  Thomas L. Naps,et al.  Towards intelligent tutoring in algorithm visualizations , 2002 .

[29]  Robert R. Henry,et al.  The University of Washington illustrating compiler , 1990, PLDI '90.

[30]  Erkki Sutinen,et al.  Perspectives on Program Animation with Jeliot , 2001, Software Visualization.

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

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

[33]  Doug Kimelman,et al.  Strata-various: multi-layer visualization of dynamics in software system behavior , 1994, Proceedings Visualization '94.