Program Visualization
Joseph Sharnowski and Betty H.C. Cheng
Software Engineering Research Group
Department of Computer Science
Michigan State University
Post-mortem visualizations of program execution are useful for
debugging the complex behavior of parallel programs. However, the
effectiveness of the visualizations is limited by the characteristics
of the information that they present. First, the monitor intrusion
and data storage constraints restrict the amount of data that may be
recorded during the program execution, and thus restrict the
corresponding information presented in the visualizations. Such
visualizations have generally only been used to provide a limited
portrayal of program execution, thus preventing a detailed examination
of the underlying behavior. Second, the type of information presented
by visualizations often limits how well their representations match
the programmer's conceptual model of the expected program behavior.
The models used for visualizing program behavior typically have
focused on depicting low-level events, such as message-passing or
procedure calls. These models impose the programmer with the burden
of establishing a match between the graphically-displayed events and
the patterns of expected behavior for the program.
This project addresses these two problems. First, in order to relax
the problems associated with the acquisition of data, we are
developing an approach to debugging based on an on-line rather than
post-mortem strategy. Recent advances in replay techniques have
encouraged the use of on-line debugging strategies since the problems
associated with monitor intrusion and data storage constraints are
avoided when using this method. With respect to visualization,
replay-based techniques are especially promising since they alleviate
the restrictions associated with the amount of data that can be
generated. This project is investigating a number of new approaches
for applying visualization to the operation of an on-line parallel
debugger. As a key feature of this project, we are exploring the
integration of a collection of visualization-based operations into a
common environment for supporting top-down debugging of parallel
programs.
The second major objective of this project is to develop a methodology
for modeling a visualization based on the expected behavior of the
program, where the model of expected behavior is generated from the
program's formal specification. In particular, we are investigating
the modeling of expected behavior in visualizations of communication
between processing elements, as well as in program call graphs and
flow diagrams. The implementation for these techniques will be
integrated with the visualization-based on-line debugger. The overall
results of this project will provide visualizations that match the
programmer's conceptual understanding of the problem at hand.
Selected Papers and Presentations
For further information, contact B. Cheng (chengb@cps.msu.edu) or visit
URL: http://www.cps.msu.edu/~chengb/serg.html