This project explores novel garbage-collection-based approaches for checking large-scale heap properties with low overhead.
"What Can the GC Compute Efficiently? A Language for Heap Assertions
at GC Time,"
Christoph Reichenbach, Neil Immerman, Yannis Smaragdakis, Edward E. Aftandilian, and Samuel Z. Guyer
in OOPSLA 2010 • [PDF]
Breadcrumbs is a system for making dynamic program analyses context sensitive. Our focus is on providing context sensitivity for deployable bug detection analyses, which require a compact and efficient representation of dynamic calling contexts. The technique builds on PCC (probabilistic calling context) by providing an algorithm that can reconstruct the call stack represented by a PCC value for use in bug reporting and logging.
Heapviz is a tool for visualizing and exploring snapshots of the heap obtained from running Java programs. Heapviz displays the Java heap as a graph where nodes are objects and pointers are edges. We apply a novel summarization algorithm to reduce the size of the graph, and we design our visualization to promote exploration and understanding of the object graph.
Please see our Heapviz project page for an example video and images.
"Heapviz: Interactive Heap Visualization for Program Understanding
Edward E. Aftandilian, Sean Kelley, Connor Gramazio, Nathan Ricci, Sara L. Su, and Samuel Z. Guyer,
in SOFTVIS 2010 • [PDF]
More information coming soon...
Elephant tracks is garbage collection tracing tool based on the Merlin algorithm. It is implemented as a JVMTI agent using a combination of GC hooks and bytecode rewriting to capture changes to the heap. Unlike previous implementations, Elephant Tracks uses method call/return as its notion of time (but can be easily modified to use allocation time). The output is a trace of object allocations, pointer updates, method call/return, and object deaths. Object death times are precise: they indicate the earliest possible point that the object could have been collected.
This tool is available for download one the Elephant Tracks page.