delve/Documentation/usage/dlv.md
aarzilli 5155ef047f proc,dwarf/line: support is_stmt and prologue_end flags
Go1.11 uses the is_stmt flag of .debug_line to communicate which
assembly instructions are good places for breakpoints, we should
respect this flag.

These changes were introduced by:
* https://go-review.googlesource.com/c/go/+/102435/

Additionally when setting next breakpoints ignore all PC addresses that
belong to the same line as the one currently under at the cursor. This
matches the behavior of gdb and avoids stopping multiple times at the
heading line of a for statement with go1.11.

Change: https://go-review.googlesource.com/c/go/+/110416 adds the
prologue_end flag to the .debug_line section to communicate the end of
the stack-split prologue. We should use it instead of pattern matching
the disassembly when available.

Fixes #550

type of interfaces
'c7cde8b'.
2018-06-11 11:09:02 -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
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.