Go代码调试¶
1.打印输出¶
使用golang中fmt.Println(),fmt.Printf() 等函数,根据输出与预期的差异进行比较来进行调试,另外一个有用的函数可能是反射相关的函数,比如reflect.TypeOf(),reflect.ValueOf(),根据反射函数可以获得指定变量中的内部结构,有助于分析问题。
2.日志输出¶
日志输入可以借助golang自带的日志包,使用log.Println(),log.Printf()等函数,将需要进行判断的内容打印到日志文件中.
使用log.SetFlags()进行设置日志输出
3.GDB调试¶
使用GDB进行调试时,需要预先执行go build -gcflags "-N -l" main.go 进行编译,-N -l标记是忽略编译器优化。
调试通过gdb main 进行启动gdb调试程序,通过b命令进行打断点,list命令查看代码,run命令运行代码。
4.Delve 调试¶
Delve 是Go 语言专有的代码调试器,比GDB功能要更丰富。通过dlv debug main.go进行调试
常用命令:
| 序号 | 命令 | 用途 |
|---|---|---|
| 1 | break | 打断点 |
| 2 | continue | 运行到断点处 |
| 3 | clear | 删除断点 |
| 4 | list | 查看代码 |
| 5 | next | 运行到下一行 |
| 6 | locals | 打印局部变量 |
| 7 | 打印一个变量或者表达式 | |
| 8 | exit | 退出调试 |