go学习(三)——gdb调试
2017-07-30 12:23
337 查看
前言:
GO语言对GDB的版本是至少为gdb7以上,才能比较好的打印任意变量,如果低于这个版本,会出现一些问题。
以下是记录单步调试使用的几个打印变量。
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
常用指令:
$ go build -gcflags “-N -l” // 编译,关闭内联优化。
$ gdb demo // 启动 gdb 调试器,手工载入 Go Runtime
(gdb) b main.main // 以 .方式设置断点。
(gdb) b main.go:17 // 以 :方式设置断点。
(gdb) info breakpoints // 查看所有断点。
(gdb) r // 启动进程,触发第一个断点。
(gdb) info locals // 查看局部变量。
(gdb) p s // 以 Pretty-Print 方式查看变量
(gdb) whatis i // 查看对象类型。
(gdb) n // 从 breakpoint() 中出来,执行源码下一行代码。
(gdb) c // 继续执行,进程结束。
(gdb) q // 退出 GDB。
GO语言对GDB的版本是至少为gdb7以上,才能比较好的打印任意变量,如果低于这个版本,会出现一些问题。
以下是记录单步调试使用的几个打印变量。
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
常用指令:
$ go build -gcflags “-N -l” // 编译,关闭内联优化。
$ gdb demo // 启动 gdb 调试器,手工载入 Go Runtime
(gdb) b main.main // 以 .方式设置断点。
(gdb) b main.go:17 // 以 :方式设置断点。
(gdb) info breakpoints // 查看所有断点。
(gdb) r // 启动进程,触发第一个断点。
(gdb) info locals // 查看局部变量。
(gdb) p s // 以 Pretty-Print 方式查看变量
(gdb) whatis i // 查看对象类型。
(gdb) n // 从 breakpoint() 中出来,执行源码下一行代码。
(gdb) c // 继续执行,进程结束。
(gdb) q // 退出 GDB。
相关文章推荐
- GDB调试学习(二)
- Linux学习--gdb调试
- 学习笔记之vi之用vimgdb调试scanf
- windows下用eclipse+goclipse插件+gdb搭建go语言开发调试环境
- GDB调试Go程序
- 菜鸟学习C++-使用GDB调试多线程死锁
- go语言的GDB调试入门初级
- GDB调试汇编堆栈过程的学习
- llvm 学习笔记 1 :gdb 调试 llvm
- 和菜鸟一起深入学习国嵌实验之gcc分步编译&&gdb调试
- GDB调试学习(一)
- Linux学习--gdb调试
- 【GDB调试学习笔记】利用core文件调试程序
- windows下用eclipse+goclipse插件+gdb搭建go语言开发调试环境
- windows下用eclipse+goclipse插件+gdb搭建go语言开发调试环境
- Linux学习--gdb调试
- Nginx学习之十四-GDB调试Nginx初试
- Linux学习--gdb调试
- 在emacs中用gdb调试学习算法与数据结构基础(1)_猜价格游戏
- 【嵌入式Linux学习七步曲之第二篇 ARM+Linux开发环境】gdb+gdbserver的方式进行ARM程序调试