During an open discussion session at PASTE 2004, one issue discussed was that researchers working on program analysis tools (both static and dynamic) too rarely compare their actual analysis results to those produced by other tools. Such comparisons are difficult because published results rarely include complete program analysis results. Even when the tools are available, different tools often use very different representations of programs being analyzed, making it difficult to compare their results.
ProBe is an attempt to begin to change this unfortunate state, and make it easier to both report and compare results of different program analysis tools. The motivation for ProBe came from an e-mail exchange between Ondřej Lhoták, Nasko Rountev, and David J. Pearce. We agreed that the following were needed:
ProBe, then, is a prototype implementation of the above requirements. Specifically, ProBe consists of a collection of data formats for results of several common program analyses for Java, and tools for writing and reading/analyzing the analysis results. Of course, in order to become standard, a data format must be accepted by the community interested in a particular program analysis, and this undoubtedly requires discussion within the community. Thus, the existing data formats are not intended to be definitive; rather, they are intended as starting points for such discussions. That said, code is already available for generating analysis results in the formats from Soot and *J. All of the formats come with simple analysis tools, and the Call Graph format in particular comes with a more comprehensive collection of analysis tools.
https://svn.sable.mcgill.ca/soot/probe/The ProBe build process generates a Jar file containing the Java classes of the ProBe library and tools. A nightly build containing all of ProBe is available.