This extended abstract presents a new tool for memory tracing, Elephant Tracks II. Elephant Tracks II (or ET2) is a portable, modular and extensible memory tracing tool designed for practical memory tracing of garbage-collected programs, producing precise traces of the program’s heap operations, including allocation, pointer mutation, procedure entry & exit, and object deaths, using the Merlin algorithm to compute death times. Unlike all previous tools, however, ET2 is capable to support multiple programming languages by decoupling the tracing phase and the death time computation phase. We describe some of the high-level design and low-level implementation strategies employed to support this extensibility and portability.

I am a master’s student in computer science at Tufts University, where I am advised by Sam Guyer. Previously, I was a research visitor with Jacques Garrigue, at Nagoya University, Japan, and before that an undergraduate student at Tufts University, where I graduated with a B.S. in 2018.