我最喜欢的代码编辑器是来自微软的 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
文件中。这个文件将会自动生成,并且应该能够直接用于本地调试:
{
"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 已准备就绪!
你可以看到,这是一个非常标准的调试器,具有本地和全局变量查看、监视特定变量、调用栈可视化和断点等选项。
我特别喜欢调试 Go 和进入库调用的方式,因为标准库非常干净、文档全面易读,通过调试你还可以学到许多关于内部工作原理的知识。
祝愉快调试!