go语言有哪些好的debug方法?
作者:Davie
链接:https://www.zhihu.com/question/40980436/answer/655067839
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
链接:https://www.zhihu.com/question/40980436/answer/655067839
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
作为一门静态语言,支持调试是必须的。
1、godebug godebug是一个跨平台的Go程序调试工具,传统的编译型语言调试器使用底层系统调用并读取二进制文件用于调试各类符号。使用起来很麻烦而且很难移植。godebug使用不同的方法,直接把源码作为目标程序,在每一行插入调试代码,然后编译并运行。 但是目前GDB做的并不好,使用起来有这样那样的问题。
2、dlv 专业调试Go语言的一款工具。
- 安装:go get -u http://github.com/derekparker/delve/cmd/dlv
- 配置:
export GOROOT=/usr/lib/golang
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin - 使用:
1、dlv debug xxx.go 指定需要debug的文件
2、进入dlv交互式窗口后,b <filename>:<line> 指定断点
3、r arg 指定运行参数
4、n 执行一行
5、c 运行至断点或程序结束
3、日志输出 如果使用GoWeb框架进行开发,可以使用日志输出来进行程序调试。
```
Logger.Info()
Logger.Warn()
Logger.Error()
Logger.Debug()
....
```
4、开发IDE调试工具 Golang开发工具如Goland,本身自带debug调试功能。