Go开发环境-dlvt调试

1. go 开发包安装 linux ubuntu 开发环境dev-bin 推荐

  • Go语言开发环境安装
  • golang.google.cn/dl/ 下载go的开发包
    • go1.21.0.linux-amd64.tar.gz
    • 需要与系统OS适配
    • 下载最新的stable版本
  • 解压到/usr/local/lib 开发包的安装目录

2. go 执行包安装 linux 替代开发包安装 调试环境bin

apt  install golang-go #直接安装go的执行包,仅bin;想继续安装dlv会失败,因为缺少dev;但可运行go run/go build/go get

3. go 开发 环境变量的设置 linux window参考类似设置

  • 给/etc/profile文件增加的内容 GOROOT与第1节的安装目录对应
export GOROOT=/usr/local/lib/go #go-dev开发包安装目录;如果安装go执行包,则为执行包的安装目录上一层
export GOPROXY=https://goproxy.io #设置go依赖包的代理,防止下载依赖包出问题 或goproxy.cn
export GO111MODULE=auto #设置gomod模式为自动,on开启,off关闭

export GOPATH=/home/gopath #开发go项目的路径,项目所在;dlv后续下载到此;相关依赖包下载到此
export GOBIN=/home/gopath/bin #不要与GOROOT目录重复,生成go项目可执行程序的目录

export PATH=$GOROOT/bin:$GOBIN:$PATH #执行go env/build/run/get 才能找到go;执行dlv 才能找到dlv;
  • source /etc/profile 生效
  • 后续重连终端、重启,自动生效

4. go 调试器dlv的安装

  • go get 标准安装
$ mkdir  -p /xxx/dlv #在go任何包目录外,否则gomod模式会将dlv添加到相关工程依赖里
$ cd /xxx/dlv
$ go get -u github.com/go-delve/delve/cmd/dlv #设置好goproxy.io代理,一般能顺利执行;从网络安装更新指定的包;-v查看进度
  • go get 失败,则尝试分解动作
$ git clone https://github.com/go-delve/delve.git $GOPATH/src/github.com/go-delve/delve
$ cd $GOPATH/src/github.com/go-delve/delve
$ make install

5. go 调试器dlv的使用 vs-dlv

5.1 remote debug vs-dlv

  • 远程服务器运行dlv
dlv dap --listen=:12345
  • vs 进行remote launch debug版本进程
{
  "name": "Connect and launch",
  "type": "go",
  "debugAdapter": "dlv-dap", // the default
  "request": "launch",
  "port": 12345,
  "host": "127.0.0.1", // can skip for localhost
  "mode": "exec", #预编译好debug版然后执行为exec,debug为远程dlv现编debug然后执行
  "program": "/absolute/path/to/remote/workspace/program/executable",
  "substitutePath": [
      { "from": "${workspaceFolder}", "to": "/path/to/remote/workspace" }, //from 本地源文件目录; to 远程源文件目录
      ...
  ]
}
  • vs 设置断点进行调试
Continue / Pause F5
Step Over (aka next in Delve) F10
Step Into (aka step in Delve) F11
Step Out (aka stepout in Delve) Shift+F11 or ⇧F11
Restart (currently this is "Stop + Start") Ctrl+Shift+F5 or ⇧⌘F5
Stop (terminate the debugee. Available in Launch request) Shift+F5 or ⇧F5

5.2 直接dlv debug dlv 推荐

dlv debug main.go #方法1,文件
dlv attach `pidof main` #方法2,进程

6. 参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值