package earlybird

  1. Overview
  2. Docs
OCaml debug adapter

Install

dune-project
 Dependency

Authors

Maintainers

Sources

earlybird-1.3.4.tbz
sha256=8dd94aa500be9c11058f2ab91c411a2105191601302b01f341d6e7a5977c76c2
sha512=b3c39657ac9d344e8d4a988da1db9be3628c806e772d9e2b6aeceab834006e3528615536229b3db3484f776bcd4e7e0c2ad7a973dddec3020533507b27a78159

Description

Published: 22 Sep 2025

README

OCaml earlybird

ci workflow status GitHub release status opam package status

OCaml debug adapter.

Installation

opam install earlybird

Usage

VS Code

See Debugging OCaml programs (experimental) in VSCode OCaml Platform README. This requires VSCode OCaml Platform 1.13 or newer.

Configuration

Field

Type

Default value

Description

program

string

(required)

The path of debuggee program.

arguments

string[]

[]

The command-line arguments for the debuggee program.

cwd

string

The working directory for debuggee program.

env

{[var: string]: string}

{}

Environment variables passed to the debuggee program.

stopOnEntry

boolean

false

Automatically stop after launch.

console

'internalConsole' \|
'integratedTerminal' \|
'externalTerminal'

internalConsole

Where to launch the debug target: internal console, integrated terminal, or external terminal.

followForkMode

'forkChild' \| 'forkParent'

forkParent

Set which process the debugger follows on fork.

source_dirs

string[]

[]

The path to search sources.

onlyDebugGlob

string

true

Only debug sources which match onlyDebugGlob.

yieldSteps

number

4096

Max steps to execute in batch. Debugger can not response other requests when executing steps in batch.

_debugLog

string

File to Log debug messages.

Troubleshooting

Breakpoints not hit with (lang dune 3.0) and above

Change to (lang dune 3.7) or above and add (map_workspace_root false) to your dune-project. See dune documentation for more information.

Examples

utop

Screen capture of debugging utop.

Launch configuration used:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "test_program",
            "type": "ocaml.earlybird",
            "request": "launch",
            "stopOnEntry": true,
            "console": "integratedTerminal",
            "program": "${workspaceFolder}/_build/default/examples/interact/test_program.bc",
            "onlyDebugGlob": "<${workspaceFolder}/**/*>",
            "yieldSteps": 1024,
            "cwd": "${workspaceFolder}"
        }
    ]
}

Dependencies (20)

  1. dap >= "1.0.6"
  2. lru >= "0.3.0"
  3. csexp >= "1.3.2"
  4. sexplib >= "v0.14.0"
  5. path_glob >= "0.2"
  6. fmt >= "0.8.9"
  7. logs >= "0.7.0"
  8. cmdliner >= "1.1.0"
  9. lwt_react >= "1.1.3"
  10. lwt_ppx >= "2.0.1"
  11. lwt >= "5.4.0"
  12. iter >= "1.2.1"
  13. ppx_optcomp >= "v0.11"
  14. ocaml-compiler-libs >= "v0.12.3"
  15. menhirLib >= "20201216"
  16. menhir >= "20201216" & build
  17. ppx_deriving_yojson >= "3.6.1"
  18. ppx_deriving >= "5.1"
  19. ocaml >= "4.12.0"
  20. dune >= "3.7"

Dev Dependencies (1)

  1. odoc with-doc

Used by

None

Conflicts

None