# 5 The Oz Profiler: `ozd -p`

The Oz profiler is extensively documented in ``The Mozart Profiler''. 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 profiler by using the following command instead:

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

Any Oz application can be run in the profiler, but you only get the full benefit of the profiling interface when the code being executed was compiled with the `-p` option to include profiling instrumentation code. The profiler and the debugger share the same interface.

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

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

  Display information on legal options, then exit

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

  You must supply this option in order to start the profiler; otherwise the debugger is started instead (see Chapter 4).

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

  This is the default option: it starts the debugger (see Chapter 4). As mentioned above, in order to actually start the profiler, you must supply the `-p` option.

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

  Starts a subordinate Emacs process. This will be used to display the source code corresponding to the profile data being examined.

`--emacs=`FILE

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