Department of Computer
Science The University of Arizona Tucson, Arizona IPD170a March 24, 1996 http://www.cs.arizona.edu/icon/docs/ipd170.htm |
Caterpillar
is a tool designed for viewing both procedure calls
and expression flow in Icon programs. Both types of events may be viewed
in separate or combined ways.Caterpillar
processes
a program's events and captures the events for procedure activation [2]
and expression evaluation.Caterpillar
uses the Icon Windows interface [3] to display
the information.
Caterpillar
, the original Icon source file as well as
an associated event file are needed. The source file is processed with a
variant Icon translator [4] that is used to determine static information,
such as which procedures explicitly call other procedures and the starting
and ending locations of procedures in the source code. This information
is used to draw a graph with lines connecting explicit procedure calls.
Analysis of the source code to determine implicit procedure calls is beyond
the scope of this program.Caterpillar
. Snapshots
of displays produced by Caterpillar
are contained in Appendix
B.
Caterpillar
is useful for viewing Icon events on both a high
and a low level. The visualization techniques seem to scale with large programs.Caterpillar
could be extended in many ways. Other types of
events, for instance garbage collections, could be shown as different types
of marks on the source code and the procedure call graph.
Writing Icon Program Execution Monitors,
The Univ. of Arizona Icon Project Document IPD264,
1996.
Shrub -- A Tool for Visualizing Procedure Activity
in Icon, The Univ. of Arizona Icon Project Document IPD153,
1990.
Graphics
Facilities for the Icon Programming Language; Version 9.1, The Univ.
of Arizona Icon Project Document IPD268, 1996.Caterpillar source-file event-stream
Caterpillar
visualizes the information from Icon event monitoring
files. There are two levels of abstraction: procedure-level and expression-level.
The default is procedure-level.quit
button to end execution of the program, a
button to allow reordering of the main window, and a slider to slow or increase
the speed of the caterpillar.reorder
button allows the user to rearrange
the layout of the procedure nodes. A node of the graph can be selected and
dragged to another location to change the layout. Clicking on the done
button terminates rearrangement.Caterpillar
.textdump
for the procedure drawgraph
.
The control panel also is visible, with the buttons for quitting, reordering
the display, and changing the speed of the caterpillar.drawgraph
leading to the call
of rendergraph
.drawgraph
the
currently executing procedure. Monitoring has been turned off in the drawgraph
procedure.