跳转至

Go代码调试

1.打印输出

​ 使用golangfmt.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 print 打印一个变量或者表达式
8 exit 退出调试