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.
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 |