# Java Platform Debugger Architecture

> As a demonstration of the Java Debug Interface (JDI), we are providing source code for the jdb debugger, re-written to use the JDI. It contains a few features not found in the pre-JDI jdb, including some expression evaluation, but some features of the standard jdb have not been implemented.

## jdb man pages

> jdb man pages for Windows

> jdb man pages for Solaris

## Invoking jdb

> The jdb sample can be run by executing:

>        java tty.TTY <options>.. <class-name>

> where <class-name> is the name you would normally place on the `java` command line. The `-help` option provides information on options. Note: Be sure that the Java 2 SDK's `lib/tools.jar` file is on the class path used to invoke `tty.TTY`. The `tools.jar` file includes the JDI Library and to the compiled jdb class files.

> For more information on invoking and connecting see Connection and Invocation Details section of the JPDA documentation, particularly the section on jdb.

## Source for jdb

> Full source code for jdb is included as part of the example code in the Java 2 SDK's `lib/jpda` directory, in `examples.jar`. (Use `jar xvf examples.jar` to extract the contents of `examples.jar`.) Note: this file also includes the source for `javadt`. Source code of these example application is included to provide concrete examples for debugger developers. Example code may be used, modified and redistributed by debugger developers providing they adhere to the terms in the copyright notice.

> jdb uses the following packages (found in the `examples.jar` file):

> `tty`
>   Application code
> `expr`
>   Expression processing code

## Building jdb

> To completely rebuild the jdb classes from the provided source files, you need only to compile them. No special options are required, aside from those which set your classpath to include the JDI Library. However, if want to modify the expression parser in the file `Expr.jj`, you will need the JavaCC parser generator.