Go语言-gdb调试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言-gdb调试相关的知识,希望对你有一定的参考价值。

编译Go语言程序的时候,传递-gcflags "-N -l"参数,这样可以忽略Go语言内部做的一些优化,聚合变量和函数等优化

go build -gcflags "-N -l"

常用命令

  • list
    显示源码,默认显示10行,例如list 15,显示十行代码,其中第15行在显示的十行里边的中间
  • break
    设置断点,后面可以跟代码行号或者函数名
  • delete
    删除断点,后面跟上断点设置的序号,这个序号可以通过info breakpoints获取相应的设置的断点序号
  • backtrace
    简写命令bt,用来打印执行的代码过程
  • info
    用来显示信息
    info locals用来显示当前执行的程序中的变量值
    info breakpoints显示当前设置的断点列表
    info goroutines显示当前执行的goroutine列表

  • print
    打印变量或者其他信息,后面跟上需要打印的变量名,

  • whatis
    用来显示当前变量的类型,后面跟上变量名

  • next
    跳到下一步 

  • continue
    用来跳出当前断点,继续执行,后面跟上参数N,跳过多上次断点

  • set variable
    用来改变运行过程中的变量值

以上是关于Go语言-gdb调试的主要内容,如果未能解决你的问题,请参考以下文章

gdb 调试 golang

GDB调试

GDB调试指南-启动调试

go语言笔记——调试还很弱,用gdb来做?可用panic和defer。格式化代码使用gofmt,貌似我的vim插件是自带

Go 调试工具:gdb vs dlv

Go 调试工具:gdb vs dlv