大家都有哪些 golang code 的 debug 的神器推荐?

已邀请:

tupunco

赞同来自: davidcai1993 simeon goldpasser

*VSCode 开发配置*

***settings.json***

VSCode 工作区配置. 菜单 `文件->个性化配置->工作区设置` 来触发本配置.
`GOPATH` 多个路径在 `Mac` 下需要 `:` 分割, `Windows` 下需要 `;` 分割, 下面涉及到的 `GOPATH` 都遵循此规则.
本节点配置后需要`重启` VSCode 来生效.

```json
{
"go.gopath": "G:\\Work\\GoPath;G:\\Work\\SVN\\...自定义目录...\\"
}
```

***launch.json***

调试运行配置. 主要配置 `ENV` 节点 `GOPATH` 项. `F5` 触发本配置.

```json
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "go",
"request": "launch",
// "mode": "exec",
// "program": "${workspaceRoot}/...自定义目录....exe",
"mode": "debug",
"program": "${workspaceRoot}",
"env": {
"GOPATH":"G:\\Work\\GoPath;G:\\Work\\SVN\\...自定义目录...\\"
},
"args": []
}
]
}
```


***tasks.json***

快捷键 `Ctrl + Shift + B` 来触发 `配置新任务`, 选择 `其他` 任务. 平时使用也用此快捷键查看 `Build` 情况.
不同系统自行配制不同节点.
```json
{
"version": "0.1.0",
"command": "go",
"isShellCommand": true,
"args": [
"build",
"-i",
"-v"
],
"windows": {
"options": {
"env": {
"GOPATH": "G:\\Work\\GoPath;G:\\Work\\SVN\\...自定义目录...\\"
}
}
},
"linux": {
"options": {
"env": {
//"GOPATH": "/home/USERNAME/GoPath:/home/USERNAME/Work/Git/...自定义目录.../"
}
}
},
"osx": {
"options": {
"env": {
//"GOPATH": "/home/USERNAME/GoPath:/home/USERNAME/Work/Git/...自定义目录.../"
}
}
},
"showOutput": "always"
}
```
[delve](https://github.com/derekparker/delve/blob/master/Documentation/usage/dlv.md)

配合 vscode 开发

astaxie - 创造、获取、分享、传播和应用Go

我刚发了一个和你一样的提问,删除了。

我自己调试Go代码比较原始,还是在使用log打印,但是有时候确实多goroutine的情况下日志打印就会有顺序问题,还是比较难调试的。最近也发现了dlv这个工具,和vscode集成的还不错,目前还在研究中。

GDB最早的时候用过一段时间,但是确实调试Go的代码不是那么方便,大家有什么更好的推荐吗?
IEAD的golang插件,debug非常舒服

SunisDown - @douban

自己都是用 gdb/lldb

看见别人有用[delve](https://github.com/derekparker/delve/blob/master/Documentation/usage/dlv.md)

还用过[godebug](https://github.com/mailgun/godebug) 这个有点像 python 的 ipdb,但是没有那么强大,调小程序够用。
idea + delve + print

simeon - 爱看球的程序员

vscode + delve
log + dlv
找bug一般用log,看代码配合dlv
idea如何使用delve?
@touei idea 使用 Delve 连接 [https://github.com/go-lang-plugin-org/go-lang-idea-plugin/wiki/Documentation#debugging-a-go-project](https://github.com/go-lang-plugin-org/go-lang-idea-plugin/wiki/Documentation#debugging-a-go-project)

要回复问题请先登录注册