Skip to content
Pre-release. v0.1.0 is not tagged and there are no published binaries yet. Install from source. Commands on this site were run against the current main.

Install lazydap

Install codelldb first, then lazydap, then run lazydap doctor to confirm each piece is where lazydap expects it. There are no published binaries yet, so lazydap is a cargo install from a clone.

A Rust toolchain, from rustup. The pinned channel comes from rust-toolchain.toml on the first cargo command you run in the repository, so there is nothing to choose.

macOS or Linux. Windows is not a target.

codelldb is the debug adapter that does the actual debugging. lazydap drives it and does not bundle it.

Releases ship as .vsix files, which are renamed zips. VS Code is not involved.

Terminal window
curl -sL -o /tmp/codelldb.vsix \
https://github.com/vadimcn/codelldb/releases/latest/download/codelldb-darwin-arm64.vsix
mkdir -p ~/.local/opt/codelldb
unzip -q -o /tmp/codelldb.vsix -d ~/.local/opt/codelldb

Other platforms: codelldb-linux-x64.vsix, codelldb-linux-arm64.vsix, codelldb-darwin-x64.vsix.

Now put it on PATH with a wrapper script, not a symlink:

mkdir -p ~/.local/bin
cat > ~/.local/bin/codelldb <<'EOF'
#!/usr/bin/env bash
exec "$HOME/.local/opt/codelldb/extension/adapter/codelldb" "$@"
EOF
chmod +x ~/.local/bin/codelldb

Check it runs. --version is not a flag codelldb knows, so use --help:

Terminal window
codelldb --help

If that hangs with no output at all, see quirk 5 — a macOS update can wedge the binary, and the fix is a re-copy.

Terminal window
git clone https://github.com/planetaryescape/lazydap
cd lazydap
cargo install --path crates/daemon

That installs one binary, lazydap. The daemon, the CLI and the TUI are all inside it.

Terminal window
$ lazydap doctor --format json
{
"checks": [
{
"detail": "/Users/you/.local/bin/codelldb",
"name": "adapter.codelldb",
"ok": true
},
{
"detail": "/Users/you/lazydap-demo/.lazydap/state.toml (not created yet)",
"name": "state.file",
"ok": true
},
{
"detail": "instance lazydap-demo-13cc8efcde46, pid 2452, protocol v2",
"name": "daemon",
"ok": true
}
],
"ok": true
}

Three checks: the adapter is on PATH, the project’s breakpoint file is readable, and a daemon is answering. "ok": true on all three means you can debug something.

doctor started that daemon. So does every other command — there is nothing to launch by hand, and the daemon guide explains what it does while it is there.

If adapter.codelldb is false, lazydap searched PATH and found nothing. Adapter discovery is PATH-only today; the config file that would let you point at an arbitrary path is specified and not built.

Terminal window
lazydap completions zsh > ~/.zfunc/_lazydap # zsh
lazydap completions bash > ~/.local/share/bash-completion/completions/lazydap

fish, elvish and powershell also work.

C, C++ and Rust, through codelldb. debugpy for Python, delve for Go and js-debug for Node are planned and not built, so a Python program has nothing to run it under today.