For sometime now I have been working on a project called JCallTracer. I had a simple problem at hand: generate Squence Diagrams for a program written in Java. I did try to google such a tool but I couldn’t find anything that was Open Source and worked on Linux. The closest I could find was Java Call Tracer. This tool was designed for Windows users and didn’t compile on Linux. I fixed that, but then it was apparently designed for Java programs with small memory foot-print. It always crashed my system for bigger Java programs. The reason being that, it maintained the whole call graph in-memory and also had too much use of realloc(), which made it so slow!
My problem wasn’t solved. Hence the tool ( still in the making ):
JCallTracer is a tool to generate Sequence Diagrams for big and multi-threaded Java applications. Large Java application themselves use a lot of RAM, leaving little space for a JVMTI agent to maintain its own data-structures to trace the calls. This tool works ( experimental at the moment ), by offloading much of the internal data-structures to disk using squential writes. Sequential writes are fast! Parts of this project are based on the code from Java Call Tracer.
Project repository: https://github.com/tuxdna/jcalltracer
I would like to know your opinion.