码迷,mamicode.com
首页 > 数据库 > 详细

GO的GDB调试

时间:2016-07-11 23:56:15      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:

GoLang语言,学了很久,一直觉得它单步调试有较多问题,最近才知道自已对它了解得太少了。
原来GO语言对GDB的版本是至少为gdb7以上,才能比较好的打印任意变量,如果低于这个版本,则才会出一些问题。
网上说GDB版本为7.1,本人使用GDB7.8版本测试,确实很不错。以下是记录单步调试使用的几个打印变量。
info frame,打印当前栈参数。
info locals打印局部变量
info args打印参数。
bt显示当前堆栈
x/3xw &r查看内存

删除调试符号:go build -ldflags “-s -w” filename.go

-s: 去掉符号信息。
-w: 去掉DWARF调试信息。
关闭内联优化:go build -gcflags “-N -l” filename.go

—————–
在centos6.6里利用原生的GDB调试时,发现如下特点。
1.直接使用list命令,会进入到一个如下状态。
(gdb) l
/usr/local/go/src/runtime/rt0_linux_amd64.s: No such file or directory.
in /usr/local/go/src/runtime/rt0_linux_amd64.s

2.可以使用l main.main命令定位到主函数。
(gdb) l main.main
warning: Source file is more recent than executable.
4
5 type point struct {
6 x, y int
7 }
8
9 func main() {
10 i:=32
11 p := point{1, 2}
12 f := 3.3434
13 txt := "sdfsdfdsfsfds"

http://www.kxtry.com/archives/737

GO的GDB调试

标签:

原文地址:http://www.cnblogs.com/findumars/p/5661921.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!