LWN.net Logo

Debugging free Java with SableVM and Eclipse

April 20, 2005

This article was contributed by Grzegorz B. Prokopski

The SableVM Project involves the development of a liberally-licensed free virtual machine for Java. SableVM has just made a preview release branch of SableVM that supports the JVMDI (Java Virtual Machine Debugging Interface) and JDWP (Java Debug Wire Protocol). These standard protocols are commonly used by tools like Eclipse (see the screen shots) to provide a rich and user-friendly system with visual debugging support.

This release is an important breakthrough because SableVM is the first Open Source Java virtual machine that supports these protocols. This support is most important for the development of basic class libraries, like those of GNU Classpath. [SableVM]

Normal Open Source applications can usually be debugged with a non-free Java Virtual Machine. This method does not work with the most basic class libraries, because to debug them, one needs a Virtual Machine that actually runs on them. In other words, one needs a Java Virtual Machine that runs with free Java libraries, like GNU Classpath, and talks via JVMDI and JDWP. This is exactly what this release of SableVM provides.

The implementation of the Java Virtual Machine Debug Interface JVMDI, has been a considerable effort. It took a year of one person's work to complete SableVM. The code was created in a modular and extensible manner. The high quality of the SableVM source code is rarely encountered even in much smaller projects. Also, SableVM is an interpreter, so accessing the many structures and implementing the special mechanisms required by JVMDI was much easier than in a virtual machine featuring a Just-In-Time compiler (JIT). This might be one of the reasons why no other Java virtual machines have had this feature implemented.

SableVM's implementation is not yet fully finished, this is why it is a preview release. But the code that is there already allows for all of the standard operations like setting breakpoints, inspecting the stack and values of variables, and more.

The installation of a debug-enabled SableVM snapshot is rather painless, the Quick Start instructions are provided along with the Troubleshooting FAQ. As always, SableVM developers and users will gladly provide any needed support via the mailing lists.

Bugs in the Free Java -- run for your life!


(Log in to post comments)

Sable vs GCJ/GIJ

Posted May 2, 2005 4:36 UTC (Mon) by b7j0c (subscriber, #27559) [Link]

Wondering which is considered the more featureful, stable solution. Any pointers?

Copyright © 2005, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds