# 4 The Oz Debugger: `ozd`

The Oz debugger is extensively documented in ``The Mozart Debugger''. We describe it here merely in its incarnation as a command line application. Furthermore, we only document its options.

If you have created an Oz application which you normally start from the shell as follows:

> `Foo` Args`...`

Then you can run it under control of the Oz debugger by using the following command instead:

> `ozd Foo --` Args`...`

Any Oz application can be run in the debugger, but you only get the full benefit of the debugging interface when the code being executed was compiled with the `-g` option to include debugging information.

The double dash `--` separates the arguments intended for `ozd` from those intended for the application being run under the debugger.

`--help`, `-h`, `-?`

  Display information on legal options, then exit

`-g`, `--debugger`, `--mode=debugger`

  This option is the default: it starts the debugger. The other possibility is `-p` to start the profiler (see Chapter 5).

`-r`, `--remotedebugger`, `--mode=remotedebugger`

  In this mode of operation, a debugger client is started and connects to a debugger server. The `--ticket` option is required.

`-p`, `--profiler`, `--mode=profiler`

  This is the other mode of operation: it starts the profiler instead (see Chapter 5).

`-E`, `--(no)useemacs`

  Starts a subordinate Emacs process. This will be used to display the source code currently being debugged. You will also be able to set breakpoints easily on source lines.

`--emacs=`FILE

  Specifies the Emacs binary to run for option `-E`. The default is $`OZEMACS` if set, else `emacs`.

`--ticket=`TICKET

  Specifies the ticket to use for option `-r` to connect to the server.