远程机器安装dlv 配置go代理 1 2 export GO111MODULE=on export GOPROXY=https://goproxy.cn
安装dlv 1 2 go get github.com/go-delve/delve/cmd/dlv dlv version
命令介绍
Delve时Go程序的源代码级的调试器。
Delve通过控制进程的执行、评估变量以及提供线程/ goroutine状态、CPU寄存器状态等信息,使你能够与程序进行交互。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 使用“--”将标志传递给正在调试的程序,例如: `dlv exec ./hello -- server --config conf/config.toml` Usage: dlv [command] Available Commands: attach 连接到正在运行的进程并开始调试. connect 连接到无头调试服务器. core 检查核心转储. debug 编译并开始调试当前目录下的主包或指定的包. exec 执行预编译的二进制文件,并开始调试会话. help 帮助信息 run 弃用的命令。使用“debug”替代它. test 编译测试二进制文件并开始调试程序. trace 编译并开始跟踪程序. version 打印版本. Flags: --accept-multiclient 允许无头服务器接受多个客户机连接。注意,服务器API不是可重入的,客户端必须协调. --api-version int 无头时选择API版本. (default 1) --backend string 后端选择: default 在macOS上使用lldb,其他地方都是本地的. native 本地后端. lldb 使用lldb-server或debugserver. rr 使用mozilla rr (https://github.com/mozilla/rr). (default "default") 默认使用的是default --build-flags string 生成标志,以传递给编译器. --headless 仅在headless模式下运行调试服务器. --init string 初始化文件,由终端客户端执行. -l, --listen string 调试服务器监听地址. (default "localhost:0") --log 启用调试服务器日志记录. --log-output string 应该产生调试输出的组件的逗号分隔列表,可能的值为: debugger 记录调试器命令 gdbwire 日志连接到gdbserial后端 lldbout 将输出从debugserver/lldb复制到标准输出 debuglineerr 读取.debug_line时日志可恢复错误 rpc 记录所有RPC消息 fncall 日志函数调用协议 minidump 日志minidump加载 使用--log启用日志时,默认为“debugger”. --wd string 用于运行程序的工作目录. (default ".") 使用"dlv [command] --help"获取有关命令的详细信息.
远程机器启动调试进程 到源代码所在的目录
1 dlv debug --headless --listen ":2345" --log --api-version 2
--headless指定只使用调试服务模式,
--listen指定了调试服务的端口,要与vscode的配置一致。
--log启用了调试日志输出,可关闭。
--api-version 2选择调试api的版本,这里必须指定为2,否则不能调试
-- 双减号加空格后填写程序启动的参数
本地vscode 远程调试设置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 { "version" : "0.2.0" , "configurations" : [ { "name" : "check" , "type" : "go" , "request" : "launch" , "mode" : "auto" , "program" : "${fileDirname}" } , { "name" : "remotedebug" , "type" : "go" , "request" : "launch" , "mode" : "remote" , "program" : "${fileDirname}" , "port" : 2345 , "host" : "172.16.100.92" , "remotePath" : "/home/go/src/check_people_gin" , } ] }
开始调试 直接vscode 启动 remotedebug