Skip to content

Configuration

What and how to debug is described by the project itself, in <root>/.bugsaur/config.toml. The file is read by the debugger, not by the editor: bugsaur from a terminal must see exactly the same configuration as :DebugStart from Neovim.

The project root

The root is the nearest directory up the tree containing .bugsaur/config.toml. The search starts from the file you launched debugging on. The nearest config wins over an enclosing one, and there is no layering or merging.

If there is no config at all, the search continues upwards for a language marker — go.mod, Cargo.toml, composer.json, pyproject.toml / setup.py / requirements.txt — and a config is generated so the launch can continue. The generated file is a starting point, not a guess: it appears in git status and is meant to be edited.

Everything relative in the config resolves from the root. ${root} expands to the absolute root path in env, args, adapter_command and launch_arguments.

A minimal config

version = 1
default = "app"

[profiles.app]
adapter = "codelldb"
program = "target/debug/app"

Unknown keys are errors

The schema is closed. A key Bugsaur does not know is a parse error that stops the launch — it is not silently ignored.

This is deliberate: a typo in a config that is quietly dropped produces a debug session that behaves subtly wrong for reasons nothing on screen explains. An error naming the line is cheaper.

What lives where

<root>/.bugsaur/
├── config.toml        the project — shared, committed
├── breakpoints.json   your breakpoints — personal, git-ignored
├── build/             binaries Bugsaur builds; ignores itself
└── logs/              logs saved from the Logs panel

This section

Page What it covers
Profiles one profile per debuggable thing; choosing between them
Program arguments args
Environment variables env, env_file, the .env format
Working directory cwd and why the default is the root
Path mappings debugging code that runs elsewhere
UI [ui]: theme, layout, window hotkeys
Reference every key, its type and its default