A prototype system for static and dynamic program understanding
Abstract
We describe a tool we call PUNDIT (Program UNDerstanding Investigation Tool), a prototype intended to servic as a vehicle for exploring and testing ideas in the area of program understanding. It combines static analysis information with information collected at runtime. We describe the architecture of PUNDIT and its two main components: the C source analyzer and a graphical user interface. We explain several of the views provided by the tool, including a high level structure chart, a dynamic call graph, a control flow graph animated during program execution, a type definition window, and others. By integrating static and dynamic information, the tool provides a more comprehensive understanding of a program as the first step to reengineering or maintaining the application than can be obtained by static analysis alone.