在mac下安装
go install github.com/go-delve/delve/cmd/dlv@latest
设置开发者模式
sudo /usr/sbin/DevToolsSecurity -enable
加入当前用户到开发组
sudo dscl . append /Groups/_developer GroupMembership $(whoami)
进入所在目录,输入dlv debug
进入调试
断点
break main.main
: 在main包main函数打断点。如果想在main文件的第10行打断点,可以break main.go:10
breakpoints
: 展示所有断点condition 2 i == 1
: 设置断点条件clear
&clearall
: 删除断点、删除多断点
流程控制
continue
: 跳到下一个断点next
: 跳到下一行step
: 单步通过程序。可以进入调用方法里面step-instruction(si)
: 单步通过cpu指令stepout
: 退出当前方法
参数查看
args
: 打印方法参数locals
: 本地参数vars
: 包变量regs
: 打印寄存器内容
goroutine和线程
goroutine
: 展示或者改变当前goroutine。比如goroutine 1
就是切换goroutine到goroutine 1goroutines
: 展示所有goroutinethread
: 切换到特定线程threads
: 展示所有线程
Ref
- https://github.com/go-delve/delve/tree/master/Documentation/installation