Delve is a free debugger for Go programs, with command-line tools for debugging, executing, and testing code. Developers can control program execution, evaluate variables, and inspect threads, goroutines, and CPU register state. Its commands cover attaching to running processes, working with packages or precompiled binaries, tracing programs, examining core dumps, and replaying rr traces. A headless instance can serve a separate client through a JSON-RPC 1.0 API, available in APIv1 and APIv2, with controls such as halt, continue, next, step, and stepout. The project lists integrations for GoLand, IntelliJ IDEA, Vim and Neovim, Visual Studio Code, Emacs, and other editors. Pre-built binaries are available for Linux, macOS, and Windows, and installation via Go is documented. The FAQ lists Linux amd64, arm64, and 386; Windows amd64; and macOS amd64 as supported combinations. Other systems and architectures have no planned support ETA. Remote debugging is supported, but headless connections are unauthenticated and can permit arbitrary remote code execution; the project advises against production use.
Who it is for
Delve suits developers debugging Go software who want command-line controls, editor integrations, or a headless client API. Its listed supported targets are specific Linux, Windows, and macOS architectures.
What is good
- Controls execution and evaluates variables.
- Inspects threads, goroutines, and CPU register state.
- Supports core dump debugging and rr trace replay.
- Lists integrations for several editors.
- MIT-licensed and free.
What to know first
- Other operating systems and architectures lack a planned support ETA.
- Headless connections are unauthenticated and risky for production.
- Go installation requires Go version 1.16 or later.
Verdict
Delve offers broad debugging commands and editor integrations for Go, with a free MIT-licensed project. Check the supported target list and avoid exposing unauthenticated headless connections, especially on public networks.
Compared on debuggers
- Free plan
- Yes
- Supported languages
- Go
- Target platforms
- Linux, macOS, Windows, FreeBSD
- Remote debugging
- Yes
- Conditional breakpoints
- Yes
- Exception breakpoints
- Yes
- Time-travel debugging
- Yes
- Core dump debugging
- Yes


