JLeak is a JVM agent meant to track down memory leaks within Java applications. It uses the javassist library to enhance Java classes in order to register instantiations and finalizations. The history view shows the stack trace of all new recorded instances. The graphic interface can be launched within the application or remotely as a dedicated process. Either way, the JLeak engine and the GUI communicate through network sockets. JLeak adds a reasonable memory overhead consumption, and can be easily launched through any IDE such as Eclipse, even on J2EE applications.
exude is a simple to use memory debugger. It enhances standard memory allocation calls with simple replacements that add just a little more functionality, such as keeping track of whether memory was previously allocated, and prevents common errors such as double frees, memory leaks, and so on.