DLV(1)

πŸ’– DLV(1) β€” the Delve era πŸ’–

okay bestie, sit DOWN, because we're talking about dlv β€” aka Delve, the debugger for the Go programming language, and honestly? she's iconic. this is from the General Commands Manual, section 1, and she is ready to spill everything about your program πŸ‘‘


✨ NAME ✨

dlv β€” Delve is a debugger for the Go programming language. that's it, that's the name, no notes 🫢


πŸŽ€ SYNOPSIS πŸŽ€

dlv [flags]

like... just the flags, babe. that's the whole entrance. main character energy fr fr πŸ’…


🌸 DESCRIPTION 🌸

Delve is a source level debugger for Go programs. source level, meaning she sees your code the way you wrote it, not as cryptic machine nonsense. slay πŸ”₯

Delve lets you 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. like, she will literally tell you what every goroutine is doing. no cap. πŸ¦‹

The goal of this tool is to provide a simple yet powerful interface for debugging Go programs. simple and powerful?? it's giving duality, it's giving range πŸ’œ


🌈 passing flags to the program you're debugging

the way that you need a -- to hand flags over to your program and not to Delve β€” the -- is the boundary, respect it ✨ for example:

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

everything after the -- goes to ./hello, everything before it is Delve's business πŸ’–


πŸ‘‘ OPTIONS πŸ‘‘

every single one, in order, no skipping, we do not gatekeep here 🫢

  • --accept-multiclient[=false] β€” Allows a headless server to accept multiple client connections via JSON-RPC or DAP. bestie said "the more the merrier" 😌 default is false.
  • --allow-non-terminal-interactive[=false] β€” Allows interactive sessions of Delve that don't have a terminal as stdin, stdout and stderr. default false, so flip it if you're being weird about your terminal πŸ™ˆ
  • --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. the only valid value is 2, so don't try anything cute πŸ’€
  • --backend="default" β€” Backend selection (see 'dlv help backend'). default is literally "default", she said what she said πŸŽ€
  • --build-flags="" β€” Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v" β€” look at that example, it's giving ✨ attention to detail ✨ default is empty.
  • --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. the vibe check on your Go version, fr πŸ” default is true.
  • --disable-aslr[=false] β€” Disables address space randomization. default false, so ASLR stays on unless you say otherwise πŸ’…
  • --headless[=false] β€” Run debug server only, in headless mode. Server will accept both JSON-RPC or DAP client connections. no interactive session, just vibes 🧚 default false.
  • -h, --help[=false] β€” help for dlv. when you're lost, she's got you 🫢
  • --init="" β€” Init file, executed by the terminal client. default is empty, so nothing gets run on startup unless you bring your own script 🌸
  • -l, --listen="127.0.0.1:0" β€” Debugging server listen address. Prefix with 'unix:' to use a unix domain socket. default is "127.0.0.1:0" β€” localhost only, as she should 😌
  • --log[=false] β€” Enable debugging server logging. default false. turn it on when you're in your detective era πŸ”Ž
  • --log-dest="" β€” Writes logs to the specified file or file descriptor (see 'dlv help log'). default empty. psst β€” 'dlv help log' has the lore πŸ““
  • --log-output="" β€” Comma separated list of components that should produce debug output (see 'dlv help log'). comma separated, bestie, don't forget the commas πŸ“ default empty.
  • --only-same-user[=true] β€” Only connections from the same user that started this instance of Delve are allowed to connect. security queen πŸ›‘οΈ default is true.
  • -r, --redirect=[] β€” Specifies redirect rules for target process (see 'dlv help redirect'). default is an empty list []. go read 'dlv help redirect' for the full tea β˜•
  • --wd="" β€” Working directory for running the program. default empty. she'll run your program wherever you tell her πŸ“

🫢 quick vibe check, bestie: options with [=...] are booleans you can toggle, and nothing here is scary β€” just read the description before you go flipping defaults, okay? especially --only-same-user[=true] and --check-go-version[=true], which are true out of the box for a reason πŸ’–

🌈 SEE ALSO 🌈

go read her sisters, the whole family is stunning:


and that's the page, babes πŸ’… this one's dated Aug 2026 and comes to you from the DLV(1) section of the General Commands Manual β€” go debug something iconic, bestie πŸ”₯πŸ‘‘

πŸ“¦ where this page comes from