1. Quick introduction

1. Quick introduction

Browsing

Home: Bugloo 0.3.0 reference manual

Previous chapter:
Next chapter: Starting the debugger

Quick introduction

1.1 What is Bugloo ?
1.2 How to read this manual ?
  1.2.1 Programs, inputs and outputs
  1.2.2 Commands presentation
1.3 What's new in this release ?

Chapters

1. Quick introduction
2. Starting the debugger
3. Break requests commands
4. Execution control
5. Name Manglers and Displayers
6. Getting informations during execution
7. Debug sessions
8. Debugging of Memory Allocation
9. Recording events during the execution
10. Miscellaneous commands
11. Manual Index

1.1 What is Bugloo ?

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 :
(bugloo)  

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 :

(bp add string 10)

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 :

(resume)Bugloo command

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

argumentdescription
<depth>::symbolstep policy. Either 'into, 'over or 'out
<size>::symbolstep size. Either 'line or 'min
<nbtimes>::inthow 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 !

This page has been generated by Scribe.
Last update Thu Aug 28 17:12:18 2003