Publication
OOPSLA 2009
Conference paper

Gaining insight into programs that analyze programs - By visualizing the analyzed program

View publication

Abstract

Visualization of a program typically entails low level views of the programexecution state showing, for example,method invocations or relations amongst heap objects. In most cases, this would imply visualization of the executable program. However there is a certain genre of programs that analyze or transform other programs. These programs could be compilers, static bug detectors, test suite analyzers, model to model transformers etc. In such cases, very often, it helps to visualize what is happening to the input program rather than the analyzer program. It is for such programs that we describe a configurable, analysis framework. For ease of exposition, we call the analyzer programthe "manipulate" program, and the input programthe "puppet" program. To facilitate the visualization, we instrument the manipulate program to generate a dump as it analyzes the puppet program. Using the "dump", we reconstruct the interprocedural control flow graph of the puppet program and then visualize the flow of the manipulate program over the puppet program. We use colors to highlight different events in the manipulate program. Using this scheme, we are able to (1) gain insight into the manipulate program; (2) collect useful information / statistics about the puppet program.We have implemented the visualizer in a tool called "INSIGHT". We ran INSIGHT on a static debugging tool (the manipulate program) called XYLEM. XYLEM applies static analysis to find potential null pointer exceptions in a puppet program, as for example, the Apache Ant program. We report the insights gained by running XYLEM through INSIGHT on ANT and other puppet programs. Copyright © 2009 ACM.

Date

Publication

OOPSLA 2009

Authors

Share