go语言有哪些好的debug方法?
QFdongdong · · 2690 次点击 · · 开始浏览作者:Davie
链接:https://www.zhihu.com/question/40980436/answer/655067839
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
作为一门静态语言,支持调试是必须的。
1、godebuggodebug是一个跨平台的Go程序调试工具,传统的编译型语言调试器使用底层系统调用并读取二进制文件用于调试各类符号。使用起来很麻烦而且很难移植。godebug使用不同的方法,直接把源码作为目标程序,在每一行插入调试代码,然后编译并运行。 但是目前GDB做的并不好,使用起来有这样那样的问题。
2、dlv专业调试Go语言的一款工具。
安装:go get -uhttp://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 : 指定断点
3、r arg 指定运行参数
4、n 执行一行
5、c 运行至断点或程序结束
3、日志输出如果使用GoWeb框架进行开发,可以使用日志输出来进行程序调试。
```
Logger.Info()
Logger.Warn()
Logger.Error()
Logger.Debug()
....
```
4、开发IDE调试工具Golang开发工具如Goland,本身自带debug调试功能。
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
作者:Davie
链接:https://www.zhihu.com/question/40980436/answer/655067839
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
作为一门静态语言,支持调试是必须的。
1、godebuggodebug是一个跨平台的Go程序调试工具,传统的编译型语言调试器使用底层系统调用并读取二进制文件用于调试各类符号。使用起来很麻烦而且很难移植。godebug使用不同的方法,直接把源码作为目标程序,在每一行插入调试代码,然后编译并运行。 但是目前GDB做的并不好,使用起来有这样那样的问题。
2、dlv专业调试Go语言的一款工具。
安装:go get -uhttp://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 : 指定断点
3、r arg 指定运行参数
4、n 执行一行
5、c 运行至断点或程序结束
3、日志输出如果使用GoWeb框架进行开发,可以使用日志输出来进行程序调试。
```
Logger.Info()
Logger.Warn()
Logger.Error()
Logger.Debug()
....
```
4、开发IDE调试工具Golang开发工具如Goland,本身自带debug调试功能。