详解VSCode中如何调试Golang工程
时间:2021-04-13
来源:互联网
今天PHP爱好者给大家带来本篇文章给大家介绍一下使用VSCode调试Golang工程的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
关键字
最简单的调试攻略
多项目调试, 适用个人开发和项目开发
无需修改系统环境变量
准备VSCode
在官网下载最新版的VSCode:
Visual Studio Code - Code Editing. Redefined**
安装Golang插件
打开扩展面板 VSCode->查看->扩展
找到Go插件 在搜索框里输入Go, 找到第二行写有 Rich Go language support for Visual Studio Code的插件, 点击安装 注意不是排名最高的
重启编辑器
配置启动项
打开调试面板 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 } ] }
其中: "port", "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命令行编译调试器
go get github.com/derekparker/delve/cmd/dlv
将dlv调试器放在GOPATH(工程目录)的bin目录下
开始调试
选中要调试的main.go, 点击F5, 既可以开始调试
调试快捷键和Visual Studio系一致
F9 切换断点
F10 Step over
F11 Step in
Shift+F11 Step out
注意点
某些结构体成员无法直接显示时, 可以直接选中变量名, 添加到监视, 或者右键点击: "调试:求值"
多项目调试
在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工程的详细内容,更多请关注php爱好者其它相关文章!
-
Android SurFaceView的用法详解 时间:2025-05-01
-
Win10共享打印机709错误的原因及解决方法 时间:2025-05-01
-
什么是binkw32.dll binkw32.dll丢失的解决方法 时间:2025-05-01
-
Python中split函数详解(参数说明、作用、用法) 时间:2025-05-01
-
面向对象设计原则有哪些?每个原则是如何定义的? 时间:2025-05-01
-
C++中取整函数(ceil、floor、round)详解(定义、用法、示例) 时间:2025-05-01
今日更新
-
Javascript中的splice()的正确使用
阅读:21
-
怎么删除html的注释
阅读:20
-
html table怎么实现不换行显示
阅读:23
-
python输出语句如何写
阅读:22
-
mysql无法连接出现错误提示10061怎么办
阅读:26
-
分享一个go语言采坑:闭包共享变量问题
阅读:20
-
html控件怎么实现隐藏
阅读:21
-
详解Node.js中Process、Path和File System模块常用 API
阅读:24
-
一招搞定Chome最新版vue
阅读:19
-
html的块元素有哪些
阅读:21