PROVIDE: a process visualization and debugging environment


This is a relatively old paper in which visualizations for debugging sessions are introduced. The process involves logging state data during the execution of programs written in a custom PROVIDE-C language. These data are used to populate graphical views of the program state. These views can be generated during the run of the program, or in a post-mortem replay.


  • Continuous display of visualizations, rather than query-based
  • Makes note that visualizations may be used to familiarize new personnel with exising systems
  • Makes note that users are forced to predict states of interest before they are reached in traditional break-point systems
  • Uses multiple monitors
  • Makes note of the BALSA system for algorithm visualization
  • Supports visualizations that are more commonly associated with statistics, such as pie charts, and plots. Also supports horizontal arrays
  • Visualizations are "bound" to variables during execution.
  • Updates are defaulted to a per-statement mechanism. Can also be set within a text editor to be done within blocks of code
  • Supports re-playing of visualizations either forward or backward after the program has finished
  • Can search through history of execution to find where bound variables were set to particular values within the context of functions. For example "active(foo) && (x==y)" will search for the next point in the execution in which x and y were equal within the running of the function foo.
  • The above is much like a watch expression or an event monitor
  • Allows users to modify values of bound variables at runtime directly via the various visualizations; i.e. pie charts, histograms, etc. Standard "handle" interfaces are supplied (much like in modern vector-based graphics applications).
  • Allows for "unwinding" execution to any point in history to begin again the same execution.

BibTeX Reference

title={PROVIDE: a process visualization and debugging environment}, 
author={Moher, T.G.}, 
journal={Software Engineering, IEEE Transactions on}, 
abstract={The author introduces PROVIDE, a source-level process visualization and debugging environment currently under development at the University of Illinois at Chicago. PROVIDE is a modern coding and debugging environment that is designed to allow the user to configure interaction at a desired level of abstraction. It emphasizes the use of interactive computer graphics for the illustration of program execution, with special attention to the requirements of program debugging. The major features of PROVIDE are presented, especially the concepts of deferred-binding program animation, which allows users to interactively change the depiction of program execution during the debugging task, and process history consistency maintenance, which guarantees a consistent (automatically updated) record of program execution in the face of changes to program instructions and run-time data values. The current PROVIDE prototype is implemented on Macintosh workstations networked to a VAX 11/780 running 4.2 BSD Unix}, 
keywords={computer graphics, program debugging, programming environments4.2 BSD Unix, Macintosh workstations, PROVIDE, University of Illinois, VAX 11/780, debugging environment, deferred-binding program animation, interactive computer graphics, process history consistency maintenance, process visualization environment, program debugging, program execution}, 
ISSN={0098-5589}, }
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License