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调试的主要内容,如果未能解决你的问题,请参考以下文章
go语言笔记——调试还很弱,用gdb来做?可用panic和defer。格式化代码使用gofmt,貌似我的vim插件是自带