gdb 调试 go

gdb 调试 go 程序

准备

安装 gdb

brew install gdb

自签

注意证书名称和 codesign 内 gdb 的安装位置

codesign -fs gdb /usr/local/bin/gdb

📢:reboot

调试流程

编译代码

go build -o bin/03_q1_slice_cap -gcflags=all="-N -l" -ldflags='-compressdwarf=false' main.go

最后为代码所在位置

GDB 调试窗口

gdb -tui ./bin/*cap*

./bin 内文件为 main.go 编译生成

image-20211008200005280
  • b main.go:7 在 main.go 第 7 行打断点

  • r 执行到断点处

  • n 单步执行(函数调用不进入内部)

  • info locals 打印当前堆栈变量

常用调试命令

  • b 文件名:行数 打断点
  • info b 当前的断点情况
  • r 运行程序知道断点处
  • c 继续执行到下一个断点
  • s 单步执行,如果有调用函数则进入函数,注意和 n 的区别
  • n 单步执行,如果有调用的函数不会进入函数内部
  • until 退出循环
  • until:行号 执行到指定行
  • info locals 当前堆栈的所有变量
  • info args 打印参数
  • info goroutines 查看所有的 goroutine 及其 ID
  • help 帮助
  • q 退出