development of a liberally-licensed free virtual machine for Java.
SableVM has just made a
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
(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.
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
and talks via JVMDI and JDWP.
This is exactly what this release of SableVM provides.
The implementation of the Java Virtual Machine Debug Interface
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
Quick Start instructions are provided along with the
As always, SableVM developers and users will
gladly provide any needed support via the
Bugs in the Free Java -- run for your life!
to post comments)