delve/Documentation/usage/dlv.md
aarzilli 454491ce86 service,logflags: log all RPC messages
We occasionally receive bug reports from users of VSCode-go and GoLand.
GoLand has its own way of capturing the packet exchange between itself
and delve but VSCode-go (supposedly) doesn't.
So far this hasn't been a problem since all bug reports were obvious
bugs on the plugin or easy to reproduce without VSCode-go, but it might
be helpful in the future to have a way to log the packet exchange
between dlv and a frontend.

This commit adds a --log-output option to enable logging of all rpc
messages and changes service/rpccommon accordingly.
2018-06-14 09:27:38 -07:00

2.6 KiB

dlv

Delve is a debugger for the Go programming language.

Synopsis

Delve is a source level debugger for Go programs.

Delve enables you to interact with your program by controlling the execution of the process, evaluating variables, and providing information of thread / goroutine state, CPU register state and more.

The goal of this tool is to provide a simple yet powerful interface for debugging Go programs.

Pass flags to the program you are debugging using --, for example:

dlv exec ./hello -- server --config conf/config.toml

Options

      --accept-multiclient   Allows a headless server to accept multiple client connections. Note that the server API is not reentrant and clients will have to coordinate.
      --api-version int      Selects API version when headless. (default 1)
      --backend string       Backend selection:
	default		Uses lldb on macOS, native everywhere else.
	native		Native backend.
	lldb		Uses lldb-server or debugserver.
	rr		Uses mozilla rr (https://github.com/mozilla/rr).
 (default "default")
      --build-flags string   Build flags, to be passed to the compiler.
      --headless             Run debug server only, in headless mode.
      --init string          Init file, executed by the terminal client.
  -l, --listen string        Debugging server listen address. (default "localhost:0")
      --log                  Enable debugging server logging.
      --log-output string    Comma separated list of components that should produce debug output, possible values:
	debugger	Log debugger commands
	gdbwire		Log connection to gdbserial backend
	lldbout		Copy output from debugserver/lldb to standard output
	debuglineerr	Log recoverable errors reading .debug_line
	rpc		Log all RPC messages
Defaults to "debugger" when logging is enabled with --log.
      --wd string            Working directory for running the program. (default ".")

SEE ALSO

  • dlv attach - Attach to running process and begin debugging.
  • dlv connect - Connect to a headless debug server.
  • dlv core - Examine a core dump.
  • dlv debug - Compile and begin debugging main package in current directory, or the package specified.
  • dlv exec - Execute a precompiled binary, and begin a debug session.
  • dlv replay - Replays a rr trace.
  • dlv run - Deprecated command. Use 'debug' instead.
  • dlv test - Compile test binary and begin debugging program.
  • dlv trace - Compile and begin tracing program.
  • dlv version - Prints version.