delve/Documentation/usage/dlv_dap.md
Alessandro Arzilli caf6df0eb9
Documentation,cmd/dlv: clean up command line usage help (#3395)
Due to some very old mistakes too many of Delve's flags are declared as
persistent on cobra's root command. For example the headless flag is a
global flag but does not apply to connect, dap or trace; the backend
flag does not apply to replay, core and dap; etc.

Almost all global flags should have been declared as local flags on
individual subcommands. Unfortunately we can not change this without
breaking backwards compatibility, for example:

   dlv --headless debug

would not parse if headless was a flag of debug instead of a global
flag.

Instead we alter usage function and the markdown generation script to
strategically hide the flags that don't apply.

Fixes #2361
2023-08-09 10:37:55 -07:00

2.4 KiB

dlv dap

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

Synopsis

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.

dlv dap [flags]

Options

      --client-addr string   host:port where the DAP client is waiting for the DAP server to dial in
  -h, --help                 help for dap

Options inherited from parent commands

      --check-go-version    Exits if the version of Go in use is not compatible (too old or too new) with the version of Delve. (default true)
      --disable-aslr        Disables address space randomization
  -l, --listen string       Debugging server listen address. (default "127.0.0.1:0")
      --log                 Enable debugging server logging.
      --log-dest string     Writes logs to the specified file or file descriptor (see 'dlv help log').
      --log-output string   Comma separated list of components that should produce debug output (see 'dlv help log')
      --only-same-user      Only connections from the same user that started this instance of Delve are allowed to connect. (default true)

SEE ALSO

  • dlv - Delve is a debugger for the Go programming language.