目录

vscode+dlv 远程调试

目录

dlv在服务器排查程序问题,没有可视化界面比较繁琐,利用vscode+dlv 远程调试,就和在本地调试一样简单

安装

  1. 在服务器和本地开发环境都要安装dlv: go install github.com/go-delve/delve/cmd/dlv@latest; 两个机器版本一定要一模一样
  2. vscode配置launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "remote debug",
            "type": "go",
            "request": "attach",
            // 这里设置remote 远程
            "mode":"remote",
            // 目标机器 端口
            "port": 2345,
            // 目标机器 ip
            "host": "10.10.10.123",
            // 本地与目标一模一样的工程目录位置
            "substitutePath": [
                { "from": "本地项目目录/hello", "to": "/服务器项目目录/hello" },
            ]
        }
    ],
}

运行

  1. 代码编译增加 -gcflags='all=-N -l'
  2. 在服务器端的程序目录下(main.go所在位置)执行命令: dlv --listen=:2345 --headless=true --api-version=2 --log attach 进程id
  3. 本地vscode启动调试
  4. 这样就能远程调试了