/

使用 VS Code 和 Delve 调试 Go

使用 VS Code 和 Delve 调试 Go

我最喜欢的代码编辑器是来自微软的 VS Code。在过去的20年里,我使用过许多编辑器,但这是迄今为止最好的。

VS Code 是开源的,即使在我的不太新的 MacBook Pro 上也很快,它从不在进行中崩溃,它可以自定义扩展,但开箱即用效果也很好。

这一切都很棒,但是如何调试 Go 程序呢?你可能认为需要一个笨重的 IDE,但事实并非如此。通过 Delve,由 Derek Parker 开发的工具,调试 Go 程序非常简单。

首先,当然,你需要安装官方的 Go VS Code 扩展,并且确保已配置好 $GOPATH

安装完成后,在 Linux/Windows 上,你只需要执行命令 Go: Install/Update Tools。在 Mac 上,你需要通过 Brew 下载 Delve,只需要在你喜欢的 Shell(应该是 zsh)中键入 brew install go-delve/delve/delve - 文档中提到了自签名,但 Brew 会替你处理这个问题。

完成后,设置调试器配置。

点击 VS Code 的 调试菜单,点击“开始调试”,或者按下 F5 键。

VS Code 将调试信息放在工作区根目录下的 .vscode/launch.json 文件中。这个文件将会自动生成,并且应该能够直接用于本地调试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "go",
"request": "launch",
"mode": "debug",
"remotePath": "",
"port": 2345,
"host": "127.0.0.1",
"program": "${fileDirname}",
"env": {},
"args": [],
"showLog": true
}
]
}

如文档所述,mode 参数可以设置为:

  • debug:编译并调试当前程序
  • test:调试测试(要调试单个测试,传递 -test.run 和测试名称作为 args)
  • exec:运行预先构建的二进制文件,指定在 program 中,例如 "program":"${workspaceRoot}/mybin"
  • remote:远程调试(请参阅官方文档中的远程调试

遇到问题了吗?这里有一些常见的陷阱(链接)。

完成上述步骤后,Delve 已准备就绪!

使用 VS Code 和 Delve 调试 Go

你可以看到,这是一个非常标准的调试器,具有本地和全局变量查看监视特定变量调用栈可视化断点等选项。

我特别喜欢调试 Go 和进入库调用的方式,因为标准库非常干净、文档全面易读,通过调试你还可以学到许多关于内部工作原理的知识。

祝愉快调试!

tags: [“Go”, “VS Code”, “Delve”, “debugging”, “programming”]