配置启动项

  打开调试面板:VSCode->查看->调试

  添加调试目标:点击添加配置

  添加目标调试配置

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "remotePath": "",
            "port": 2345,
            "host": "127.0.0.1",
            "program": "${fileDirname}",
            "env": {
                "GOPATH":"D:/Develop/vscodegolang"
            },
            "args": [],
            "showLog": true
        }
    ]
}

    其中"post","host"都是go插件自动生成的,“env”为设置环境变量,设置为工程目录包含bin、src的文件夹

准备调试插件

  选中要调试的main.go,点击F5会报错误提示:Failded to continue:"Cannot find Delve debugger. Install from https://github.com/derekparker/delve & ensure it is in your "GOPATH/bin" or "PATH"

  使用命令编译调试器:go get github.com/derekparker/delve/cmd/dlv  将dlv调试器放在GOPATH的bin目录下

开始调试

  选中要调试的main.go,点击F5可以开始调试

  调试快捷键:

      F9 切换断点

      F10 Step over

      F11 Step in

      Shift+F11 Step out

  注意:有些结构体成员法务直接显示时,可以直接选中变量名,添加到监视,或者右键点击"调试:求值"

多项目调试

  在launch.json中可以添加多组调试入口,通过调试面板中选中对应的配置开启不同目标的调试

  

在launch.json中可以添加多组调试入口, 通过调试面板中选中对应的配置开启不同目标的调试

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "client",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "remotePath": "",
            "port": 2345,
            "host": "127.0.0.1",
            "program": "${fileDirname}",
            "env": {
                "GOPATH":"D:/Develop/vscodegolang"
            },
            "args": [],
            "showLog": true
        },

        {
            "name": "server",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "remotePath": "",
            "port": 2345,
            "host": "127.0.0.1",
            "program": "${workspaceRoot}/src/server",
            "env": {
                "GOPATH":"D:/Develop/vscodegolang"
            },
            "args": [],
            "showLog": true
        }
    ]
}
"program"中的"${fileDirname}"是以当前选中文件作为启动点

更建议使用"program"的"${workspaceRoot}", 以包名作为启动点的方式进行配置

  

02-13 23:00