Bugloo is a debugger for the Scheme compiler Bigloo.
It aims to help programmers in debugging programs written for the JVM
backend of Bigloo.
The core part of Bugloo is written in Java, and uses JVMDI and JVMPI,
the standard APIs provided by Sun to make debuggers on the JVM
platform. This implies that virtually every program compiled to JVM
bytecodes can be debugged with it.
Currently, Bugloo is able to debug Java programs, Bigloo programs or a
mix of both. Bugloo is based on the debugging model used in GDB, but
it provides features that aim to debug programs in a more practical
manner than conventionnal debuggers.
1.2 How to read this manual ?
|
1.2.1 Programs, inputs and outputs
When you start Bugloo, you are in front of a prompt. Across this
manual, everything typed in the following style will denote an output
from the debugger :
This manual describes all the commands you can send to Bugloo. These
commands are formatted like standard Scheme lists. The style
used in this manual to denote these commands is as follow :
Sometimes in the manual, an example is illustrated by a piece of
program source code. Lines of a program are always numbered, like
this :
1:(define (foo)
2: (print (bar '(1 2 3)))
3: (print (bar '(a b c))))
4:
5:(define (bar l)
6: (cons 'gee l))
7:
8:(foo) |
1.2.2 Commands presentation
The different chapters of this manual describe a command by giving
its syntax and explaining its effects. The syntax of the commands is
close to that of classic Scheme.
The name of a command is written using bold face :
A variation of a command is written using slanted face :
(info args) | Bugloo command |
(info stack) | Bugloo command |
Arguments user must give are written between "<" and ">" :
(bp add <classname> <line>) | Bugloo command |
Optional arguments come after a "." in the command :
(bp add <classname> <line> . <lifetime>) | Bugloo command |
Repetitions are denoted by "..." after an argument of all kind :
(rerun . <arg> ...) | Bugloo command |
(filter class add ( <expression> ... )) | Bugloo command |
Arguments type and their description are consigned next to their
command definition, in a table like this :
(step <depth> <size> . <nbtimes>) | Bugloo command |
Resume the execution of the debuggee program
argument | description |
<depth>::symbol | step policy. Either 'into, 'over or 'out |
<size>::symbol | step size. Either 'line or 'min |
<nbtimes>::int | how many steps to do at once |
1.3 What's new in this release ?
|
The following features have been added or modified between release 0.3.0
and 0.2.0:
- Support for additional JVM platforms and implemtations:
- Modified configure and Makefiles so that Bugloo successfully
build on MacOS !!! Tested with Apple JDK 1.4.1.
- Rewritten non-portable code for signal handling so that
Bugloo can be run with IBM's latest JDK (1.4.1).
- Fixed examples and tutorial compilation, so that it works
properly under win32 and MacOS X
- Smarter implementation of the back-reference
feature. Computations are now done in the debuggee virtual machine
with JNI. HUGE speed improvement !
- Improved GUI binding for Bugloo:
- GUI frontend supported under win32 with GNU Emacs 21.3 CVS ! At
last, cmd.exe shell can be embedded into the editor...
- Elisp compilation flags have been changed to reflect changes in
the way Emacs 21.3 byte-compiles files.
- many bug fixes and some bmacs modifications for better toolbar
support.
- Improved Bigloo name manglers / displayers :
- Added support for correctly displaying java.lang.Object[] as
::vector.
- Fixed demangling problems for bootstrap classes in the Bigloo
runtime and for classes not yet initialized in the debuggee.
- Added a displayer for closures, which prints the real
user function it associated with a Scheme closure. Also works for programs
that are compiled without debugging symbols !
- Added a print command a la GDB. print evaluates any
Scheme s-expression, outputs its result on the screen and saves it
in the current value %obj% for later reuse.
- Added new flags into the bugloo.properties file, relating to jni
checks and verbosity mode for the debuggee JVM.
- Improved documentation to reflect changes. Added a new Scribe
style to render the doc in a HTML tree view.
- Many bug fixes !
|