![]() Using a fixed path as the default output binary means that executing Delve twice in the same directory will cause the second invocation to overwrite the output binary of the first instance of Delve, making the restart command not work correctly. Fixes #3345 |
||
---|---|---|
.. | ||
dlv_attach.md | ||
dlv_backend.md | ||
dlv_connect.md | ||
dlv_core.md | ||
dlv_dap.md | ||
dlv_debug.md | ||
dlv_exec.md | ||
dlv_log.md | ||
dlv_redirect.md | ||
dlv_replay.md | ||
dlv_run.md | ||
dlv_test.md | ||
dlv_trace.md | ||
dlv_version.md | ||
dlv.md | ||
README.md |
Using Delve
You can invoke Delve in multiple ways, depending on your usage needs. Delve makes every attempt to be user-friendly, ensuring the user has to do the least amount of work possible to begin debugging their program.
The available commands can be grouped into the following categories:
- Specify target and start debugging with the default terminal interface:
- Trace target program execution
- Start a headless backend server only and connect with an external frontend client:
- dlv --headless <command> <target> <args>
- starts a server, enters a debug session for the specified target and waits to accept a client connection over JSON-RPC or DAP
<command>
can be any ofdebug
,test
,exec
,attach
,core
orreplay
- if
--headless
flag is not specified the default terminal client will be automatically started instead - compatible with dlv connect, VS Code Go, GoLand
- dlv dap
- starts a DAP-only server and waits for a DAP client connection to specify the target and arguments
- compatible with VS Code Go
- NOT compatible with dlv connect, GoLand
- dlv connect <addr>
- starts a terminal interface client and connects it to a running headless server over JSON-RPC
- dlv --headless <command> <target> <args>
- Help information
The above list may be incomplete. Refer to the auto-generated complete usage document to further explore all available commands.
Environment variables
Delve also reads the following environment variables:
$DELVE_EDITOR
is used by theedit
command (if it isn't set the$EDITOR
variable is used instead)$DELVE_PAGER
is used by commands that emit large output (if it isn't set the$PAGER
variable is used instead, if neither is setmore
is used)$TERM
is used to decide whether or not ANSI escape codes should be used for colorized output$DELVE_DEBUGSERVER_PATH
is used to locate the debugserver executable on macOS