使用gdb远程调试Go代码(arm)
研究的这个最主要原因是arm平台无法使用delve
工具无法在arm平台上使用,而现实中你的程序不可能没有bug,这时候查起问题来没有debug就太痛苦了~
编译参数
for Go 1.10 or later: -gcflags "all=-N -l"
for Go 1.9 or earlier: -gcflags "-N -l"
于我的环境而言,使用的是如下命令:
|
|
运行命令
在需要调试的Arm机器上运行如下命令:
|
|
本地环境
原计划在MacOs环境上运行的,但每次一运行next的时候,gdbserver就会退出,无奈之下还是选择了在docker环境里边进行远程调试。
|
|
进入docker环境之后,执行 apt-get install gdb-multiarch cgdb
安装所需要的gdb
和cgdb
命令
然后,我们写一个.cmds
文件,如arm-gdb.cmds
:
|
|
最后运行 cgdb -d gdb-multiarch -x arm-gdb.cmds
就可以进行调试了
参考链接:(官网)https://golang.org/doc/gdb