Elephant tracks

Nathan P. Ricci, Samuel Z. Guyer, J. Eliot B. Moss
2013 SIGPLAN notices  
We present Elephant Tracks (ET), a dynamic program analysis tool for Java that produces detailed traces of garbage collection-related events, including object allocations, object deaths, and pointer updates. Like prior work, our tracing tool is based on the Merlin algorithm [6, 7] , but offers several substantial new capabilities. First, it is much more precise than previous tools: it traces method entries and exits and measures time in terms of them, allowing it to place events precisely in
more » ... context of the program structure. Second, it is implemented using a combination of JVM Tool Interface (JVMTI) [13] callbacks and bytecode rewriting, and works with any standard JVM. Finally, it produces complete traces, including weak references, events from the Java Native Interface and sun.misc.Unsafe, and VM start up objects. In this paper we also explore the general design space of tracing tools, and carefully define the execution model that the traces represent.
doi:10.1145/2555670.2466484 fatcat:h5c5mxrr7jdhdmguwwai5hwgvm