Authors: John Miller-Williams, Robert Biddle, Ewan Tempero
Source: GZipped PostScript (254kb); Adobe PDF (417kb)
This paper documents the rapid implementation of a system for visualisation of the execution of C++ programs on a Unix system. The system was to produce dynamic diagrams representing data and control structures so as to assist programmers determine reusable components within the program. Such a system would normally involve a considerable amount of low-level and high-level programming, but we avoided much of thus by extensive use of several programming tools.
We first used the Gnu C++ debugger Gdb, which allows interactive control of C++ program execution, and retrieval of textual information about the program. We then used Expect, a system that allows automatic control of a text interface of a program, to retrieve information about the C++ program using Gdb. In conjunction with Expect, we used the scripting language Tcl and user interface toolkit Tk to analyse the information, draw diagrams, and provide user control.
The end result was a successful program visualisation system produced in a fraction of the time that would otherwise have been necessary. While program visualisation is a relatively specialised application, all this technology would be similarly useful for many other applications.