Ubuntu 下 Go 调试环境设置指南
一 环境准备与工具安装
go version 验证。go install github.com/go-delve/delve/cmd/dlv@latest,确保 dlv 在 $GOPATH/bin 或 $PATH 中可用。sudo apt-get install gdb,用于通用调试或与 Delve 互补。apt 安装的 golang-go 缺少开发工具链,后续 go install dlv 可能失败,建议使用官方包或源码安装 Go。二 本地调试 Delve 与 VS Code
dlv debug . --break main.main(在 main.main 处设断点)。dlv debug your_program.go。break/continue/step/next/print/backtrace 等。launch.json,示例:
{"name":"Launch Package","type":"go","request":"launch","mode":"auto","program":"${workspaceFolder}"}{"name":"Launch File","type":"go","request":"launch","mode":"auto","program":"${workspaceFolder}/main.go"}三 远程调试 Delve 与 Goland
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o app main.go~/go/bin/dlv --listen=:2345 --headless=true --api-version=2 exec ./app~/go/bin/dlv dap --listen=:12345~/go/bin/dlv --listen=:2345 --headless=true --api-version=2 --log --log-output=debugger,rpc dap --listen=:12345ssh -L 2345:127.0.0.1:2345 -N -i <key> <user>@<host>(本地端口转发到远程)。{"name":"Connect to remote","type":"go","debugAdapter":"dlv-dap","request":"launch","port":12345,"host":"127.0.0.1","mode":"exec","program":"/abs/path/to/app"}四 远程调试 Delve 与 VS Code
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o app main.go~/go/bin/dlv --listen=:2345 --headless=true --api-version=2 exec ./app~/go/bin/dlv dap --listen=:12345~/go/bin/dlv --listen=:2345 --headless=true --api-version=2 --log --log-output=debugger,rpc dap --listen=:12345ssh -L 2345:127.0.0.1:2345 -N -i <key> <user>@<host>(本地端口转发到远程)。{"name":"Connect to remote","type":"go","debugAdapter":"dlv-dap","request":"launch","port":12345,"host":"127.0.0.1","mode":"exec","program":"/abs/path/to/app"}五 常见问题与排查
apt 安装的 golang-go 缺少开发头文件和工具链,改用官方包安装 Go 后再 go install dlv@latest。