Projects
Heap Assertions
This project explores novel garbage-collection-based approaches for checking large-scale heap properties with low overhead.
Publications
"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]
"GC Assertions: Using the Garbage Collector to Check Heap Properties",
Edward E. Aftandilian and Samuel Z. Guyer,
in PLDI 2009 •
[PDF]
People
Samuel Z. Guyer • Edward Aftandilian • Christoph Reichenbach (UMass) • Yannis Smaragdakis (UMass) • Neil Immerman (UMass)
Breadcrumbs
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.
Publications
"Breadcrumbs: Efficient Context Sensitivity for Dynamic Bug Detection Analyses",
Michael D. Bond, Graham Z. Baker, and Samuel Z. Guyer,
in PLDI 2010 •
[PDF]
People
Samuel Z. Guyer • Mike Bond • Graham Baker (MITLL)
Heapviz
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.
Project page
Please see our Heapviz project page for an example video and images.
Publications
"Heapviz: Interactive Heap Visualization for Program Understanding
and Debugging,"
Edward E. Aftandilian, Sean Kelley, Connor Gramazio, Nathan Ricci,
Sara L. Su, and Samuel Z. Guyer,
in SOFTVIS 2010 •
[PDF]
People
Samuel Z. Guyer • Sara Su • Edward Aftandilian • Sean Kelley • Connor Gramazio • Nathan Ricci
Storage Optimization
More information to follow...
Memory Debugging
More information to follow...
People
Samuel Z. Guyer • Nathan Ricci • Gary Sevitsky (IBM)
People
Software
Elephant tracks
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.