Vscode调试golang的debug

Posted parallel-y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vscode调试golang的debug相关的知识,希望对你有一定的参考价值。

配置启动项

  打开调试面板: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", 以包名作为启动点的方式进行配置

  

以上是关于Vscode调试golang的debug的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Golang 和 AppEngine 设置 VScode 调试会话?

Golang 在mac上用VSCode开发Delve调试

调试golang可执行文件时无法在vscode中获取局部变量

vscode插件设置——Golang开发环境配置

vscode安装golang插件

使用 VSCode 如何进行远程开发调试?