---
name: "dlv-dap"
section: "1"
platform: "linux"
package: "delve"
version: "1.24.0-4+b4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/dlv-dap"
---

# dlv-dap(1)

Starts a headless TCP server communicating via Debug Adaptor Protocol (DAP).

## NAME

dlv-dap - Starts a headless TCP server communicating via Debug Adaptor Protocol (DAP).

## SYNOPSIS

**dlv dap \[flags\]**

## DESCRIPTION

Starts a headless TCP server communicating via Debug Adaptor Protocol (DAP).

The server is always headless and requires a DAP client like VS Code to connect and request a binary to be launched or a process to be attached to. The following modes can be specified via the client's launch config: - launch + exec   (executes precompiled binary, like 'dlv exec') - launch + debug  (builds and launches, like 'dlv debug') - launch + test   (builds and tests, like 'dlv test') - launch + replay (replays an rr trace, like 'dlv replay') - launch + core   (replays a core dump file, like 'dlv core') - attach + local  (attaches to a running process, like 'dlv attach')

Program and output binary paths will be interpreted relative to dlv's working directory.

This server does not accept multiple client connections (--accept-multiclient). Use 'dlv \[command\] --headless' instead and a DAP client with attach + remote config. While --continue is not supported, stopOnEntry launch/attach attribute can be used to control if execution is resumed at the start of the debug session.

The --client-addr flag is a special flag that makes the server initiate a debug session by dialing in to the host:port where a DAP client is waiting. This server process will exit when the debug session ends.

## OPTIONS

**--client-addr**=""\
 	Address where the DAP client is waiting for the DAP server to dial in. Prefix with 'unix:' to use a unix domain socket.

**-h**, **--help**\[=false\]\
 	help for dap

## OPTIONS INHERITED FROM PARENT COMMANDS

**--accept-multiclient**\[=false\]\
 	Allows a headless server to accept multiple client connections via JSON-RPC or DAP.

**--allow-non-terminal-interactive**\[=false\]\
 	Allows interactive sessions of Delve that don't have a terminal as stdin, stdout and stderr

**--api-version**=2\
 	Selects JSON-RPC API version when headless. The only valid value is 2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md.

**--backend**="default"\
 	Backend selection (see 'dlv help backend').

**--build-flags**=""\
 	Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"

**--check-go-version**\[=true\]\
 	Exits if the version of Go in use is not compatible (too old or too new) with the version of Delve.

**--disable-aslr**\[=false\]\
 	Disables address space randomization

**--headless**\[=false\]\
 	Run debug server only, in headless mode. Server will accept both JSON-RPC or DAP client connections.

**--init**=""\
 	Init file, executed by the terminal client.

**-l**, **--listen**="127.0.0.1:0"\
 	Debugging server listen address. Prefix with 'unix:' to use a unix domain socket.

**--log**\[=false\]\
 	Enable debugging server logging.

**--log-dest**=""\
 	Writes logs to the specified file or file descriptor (see 'dlv help log').

**--log-output**=""\
 	Comma separated list of components that should produce debug output (see 'dlv help log')

**--only-same-user**\[=true\]\
 	Only connections from the same user that started this instance of Delve are allowed to connect.

**-r**, **--redirect**=\[\]\
 	Specifies redirect rules for target process (see 'dlv help redirect')

**--wd**=""\
 	Working directory for running the program.

## SEE ALSO

**[dlv(1)](/dlv/1.md)**
