Path Projection: User Interface for Static Analysis

The programming community has benefitted from great improvements in sophisticated detect defection tools based on static analysis. However, the use of these tools has yet to become prevalent since they are difficult to use. Unfortunately, most work has been focused on the algorithms, and much less on the (ease of) development and use of these tools.

We have developed Path Projection, a novel user interface toolkit that helps users visualize, navigate, and understand program paths, a common component of many static analysis tools' error reports. We have currently applied Path Projection to Locksmith, a data race detection tool for C.

Papers

Path Projection for User-Centered Static Analysis Tools.
Khoo Yit Phang, Jeffrey S. Foster, and Michael Hicks
March 2008. Submitted for publication.
PDF

People

Screenshots

aget example from paper aget with one column scrolled aget with additional multi-query terms
aget with all query terms removed knot with a deep call stack leading to race. Note that the path 3 is unrealizable due to g_spawn_on_demand pfscan example showing that paths need not be call-stacks