golang远程调试 vscode+dlv

作者:matrix 被围观: 1,045 次 发布时间:2023-12-31 分类:Golang | 一条评论 »

远程环境可能会有远程调试需求,比如白名单访问限制等情况

要让本地环境调试远程环境数据,本地代码和远程环境执行代码必须保持一致

安装dlv

远程服务器环境安装 dlv

$ go  install github.com/go-delve/delve/cmd/dlv@latest

查看已安装dlv版本

$ dlv version
Delve Debugger
Version: 1.21.0
Build: $Id: fec0d226b2c2cce1567d5f59169660cf61dc1efe 

启动dlv服务

方法a. 监听已启动进程

$ dlv attach 28122  --listen=:8669 --headless --api-version=2 --log

28122 为已启动进程id
8669 为dlv开启的监听端口

方法b. 通过dlv直接启动指定bin文件

$ dlv  exec   --listen=:8669 --headless --api-version=2 --log  ./main-hhtjim

8669 为dlv开启的监听端口
main-hhtjim 为打包的bin文件

方法c. dlv直接启动并且监听

$ dlv debug --listen=:8669 --headless --api-version=2 --log

8669 为dlv开启的监听端口

本地vscode启动debug

本地配置 .vscode/launch.json

{
  // Use IntelliSense to learn about possible attributes.
  // Hover to view descriptions of existing attributes.
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch Remote",
      "type": "go",
      "request": "attach",
      "mode": "remote",
      "remotePath": "/home/work/demo-go/", //项目远程根路径
      "port": 8669, //监听端口
      "host": "www.hhtjim.com", //远程主机/IP
      "cwd": "${workspaceFolder}",//vscode本地工作目录
      "trace": "verbose" //输出详情
     }
  ]
}

销毁dlv监听

调试环境不使用之后切记销毁,dlv目前无身份校验!

其他文章:
本文固定链接:https://www.hhtjim.com/golang-remote-debug-vscode-dlv.html
matrix
本文章由 matrix 于2023年12月31日发布在Golang分类下,目前没有通告,你可以至底部留下评论。
转载请注明:golang远程调试 vscode+dlv-HHTjim'S 部落格
关键字:, ,

有1条评论 »

  1. 谷歌优化 谷歌优化 2024-1-18 16:58:15 +0800#1

    这方法太有效了

添加新评论 »

 🙈 😱 😂 😛 😭 😳 😀 😆 👿 😉 😯 😮 😕 😎 😐 😥 😡 😈 💡

插入图片

NOTICE: You should type some Chinese word (like “你好”) in your comment to pass the spam-check, thanks for your patience!