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

已邀请:

tupunco

赞同来自: davidcai1993 simeon goldpasser

VSCode 开发配置

settings.json

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

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

launch.json

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

{
    "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 情况. 不同系统自行配制不同节点.

{
    "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"
}

tupunco

赞同来自:

delve

配合 vscode 开发

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

赞同来自:

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

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

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

gogoing

赞同来自:

IEAD的golang插件,debug非常舒服

SunisDown - @douban

赞同来自:

自己都是用 gdb/lldb

看见别人有用delve

还用过godebug 这个有点像 python 的 ipdb,但是没有那么强大,调小程序够用。

lnhlg

赞同来自:

idea + delve + print

simeon - 爱看球的程序员

赞同来自:

vscode + delve

九命猫

赞同来自:

log

fengche

赞同来自:

log + dlv 找bug一般用log,看代码配合dlv

touei

赞同来自:

idea如何使用delve?

要回复问题请先登录注册