---
name: "ocamldebug"
section: "1"
platform: "linux"
package: "ocaml"
version: "5.5.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/ocamldebug"
---

# ocamldebug(1)

the OCaml source-level replay debugger.

## NAME

ocamldebug - the OCaml source-level replay debugger.

## SYNOPSIS

**ocamldebug** \[ *options* \] *program* \[ *arguments* \]

## DESCRIPTION

**ocamldebug** is the OCaml source-level replay debugger.

Before the debugger can be used, the program must be compiled and linked with the **-g** option: all .cmo and .cma files that are part of the program should have been created with **ocamlc -g**, and they must be linked together with **ocamlc -g**.

Compiling with **-g** entails no penalty on the running time of programs: object files and bytecode executable files are bigger and take longer to produce, but the executable files run at exactly the same speed as if they had been compiled without **-g**.

## OPTIONS

A summary of options are included below. For a complete description, see the html documentation in the ocaml-doc package.

- **-c** *count*

  Set the maximum number of simultaneously live checkpoints to *count*.

- **-cd** *dir*

  Run the debugger program from the working directory *dir*, instead of the current working directory. (See also the **cd** command.)

- **-emacs**

  Tell the debugger it is executed under Emacs.  (See *The OCaml user's manual* for information on how to run the debugger under Emacs.) Implies **-machine-readable**.

- **-I** *directory*

  Add *directory* to the list of directories searched for source files and compiled files.  (See also the **directory** command.)

- **-machine-readable**

  Print information in a format more suitable for machines instead of human operators where applicable. For example, when describing a location in a program, such as when printing a backtrace, print the program counter and character offset in a file instead of the filename, line number, and character offset in that line.

- **-s** *socket*

  Use *socket* for communicating with the debugged program. See the description of the command **set socket** in *The OCaml user's manual* for the format of *socket*.

- **-version**

  Print version string and exit.

- **-vnum**

  Print short version number and exit.

- **-help** or **--help**

  Display a short usage summary and exit.

## INITIALIZATION FILE

When [**ocamldebug**(1)](/ocamldebug/1.md) is invoked, it will read commands from an initialization file before giving control to the user. The default file is **.ocamldebug** in the current directory if it exists, otherwise **.ocamldebug** in the user's home directory.

Note that you can also use the **source file** command to read commands from a file.

## SEE ALSO

[**ocamlc**(1)](/ocamlc/1.md).\
 *The OCaml user's manual*, chapter "The debugger".

## AUTHOR

This manual page was written by Sven LUTHER \<luther@debian.org\>, for the Debian GNU/Linux system (but may be used by others).
