Downloading Bdbj (version 1.2.1)
Bdbj is a debugger for programs written in pure Java,
which allows the user to step both backwards and forwards through the code.
Conventional debugging concepts such as breakpoints and watches are
also supported. The debugger can be used with a command line or a graphical
interface. In the latter case there is support for editing and compiling
the source code. The papers
discuss the implementation and motivation of this project in more detail.
Bdbj was designed and implemented by Jonathan Cook, University of Edinburgh.
Bdbj is a Java program linked to a modified version of the
Java Virtual Machine Kaffe (version 1.0.7), which allows the debugging
of programs which Kaffe 1.0.7 is capable of running.
This release has only been tested on Linux. To use the GUI, you will
also require
a Java Virtual Machine with Swing, ideally a recent JDK release.
Alternatively, Kaffe is capable of running Swing, but if you do this
you should install a separate version of Kaffe with the JIT enabled
and use this to run the GUI, as the interpreter would run the GUI
quite slowly.
In order to install Bdbj on your machine you will need to
follow the following steps:
- Change the working directory to the one in which you want
the directory (called kaffe-1.0.7) containing Kaffe's source code,
and the directory (called kaffe) containing the compiled program
and the debugger, to be put.
When run normally,
i.e. directly rather than by the debugger this version of Kaffe
will operate in the normal way (except in the case that I have
introduced bugs). However the version installed
will have JIT switched off and will therefore run Java slower.
So if you already have Kaffe installed we recommend that you
install our version of Kaffe in a separate directory rather
than on top of your existing version.
- Download the gzipped tar file for Kaffe version 1.0.7,
kaffe-1.0.7.tar.gz
, this is also available from
the Kaffe homepage.
- Download the file
bdbj-1.2.1.tar
which contains all the source code, and Java class files, into the same directory as
the Kaffe tar file.
- Download the file
installbdbj-1.2-1
or installbdbj-1.2.1dir
(if you want to compile and install in different directories)
into the same directory as the other two files
and make it executable. Look at it to check it will
work on your UNIX platform (it has been tested on Linux and Solaris).
If so execute it, if not (this would be surprising) modify it as necessary and
then execute it.
If you are using installbdbj-1.2.1dir then run the script in the directory in which you wish to compile, but pass it as an argument the installation directory.
The script will generate files called bdbj
(for the GUI)
and bdbjtty
(for the command line interface) which you can
put somewhere on your $PATH.
- There are two tests that you can perform on the build. To perform the first, change
into the directory kaffe-1.0.7 and run "make check". To perform the second test,
download the
file
bdbjregress
, place it in the
same directory as the generated bdbjtty file and then execute it.
The first test checks that Kaffe operates correctly when not coupled with the debugger.
The second test runs a few simple debugging tasks and checks that the debugger
behaves correctly.
Note about Swing
Bdbj supports JFC 1.1/Swing 1.1.1 (which you can
download from Sun). To use this, now fairly old, version of
Swing, download and extract the tar.Z file and then add the swingall.jar file in the top level of the
extracted directory to the BDBJCLASSPATH before you run bdbj:
e.g. export BDBJCLASSPATH=/home/jjc/swing-1.1.1fcs/swingall.jar:.
This version of Swing is virtually sufficient to run the bdbj GUI (tables go slightly wrong).
New Features (compared with bdbj 1.1):
- Ability to reverse simple file I/O.
- Ability to step through the bytecode.
- Ability to log code without opening its Java file, in particular library code.
- Trapping of fatal exceptions.
- Better support for editing code in the GUI, and support for using the command line
protocol within the GUI.
- Bug fixes, stdin/out/err console more stable.
This release fixes many bugs in bdbj 1.2 beta, in addition to moving from
Kaffe 1.0.6 to Kaffe 1.0.7.
The release on this page is a minor revision of 1.2.1 in April 2003.
Running and using Bdbj
The help file (which can also be viewed via the Help menu in Bdbj) is
also online here.
Screen-shot
Source Code
The bdbj tar file available above contains all the Java code for
the debugger's user interface, within the appropriate jar files,
and also those files of Kaffe which have been modified.
These files can be browsed from here.
For the original licensing information regarding the modified files,
please see kaffe-1.0.7.tar.