使用 GDB 调试 go 程序

By ego008 at 2018-01-18 11:33 • 828次点击
ego008

GDB 是 FSF (自由软件基金会)发布的一个强大的类UNIX系统下的程序调试工具。
为了使用 GDB 调试 go 程序,需要使用 -gcflags ”-N -l” 选项编译程序,这些选项阻止编译器使用内联函数和变量。

go build -gcflags "-N -l" -o myapp main.go 
gdb myapp

GDB 常用命令:

显示代码的文件和行号,设置断点和反汇编:

(gdb) list
(gdb) list line
(gdb) list file.go:line
(gdb) break line
(gdb) break file.go:line
(gdb) disas

显示回溯和展开堆栈帧:

(gdb) bt
(gdb) frame n

显示局部变量,参数和返回值的堆栈框架的名称,类型和位置:

(gdb) info locals
(gdb) info args
(gdb) p variable
(gdb) whatis variable

显示全局变量的名称,类型和位置:

(gdb) info variables regexp

更多参考:
Google 官方指南
https://golang.org/doc/gdb
Using the gdb debugger with Go
https://blog.codeship.com/using-gdb-debugger-with-go/ 2
The tips of using gdb to debug Golang program
http://nanxiao.me/en/the-tips-of-using-gdb-to-debug-golang-program/ 1

Introduction to Go Debugging with GDB
https://lincolnloop.com/blog/introduction-go-debugging-gdb/ 1
中文版 https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/11.2.md 3

大牛写的 GDB 入门
gdb Debugging Full Example (Tutorial): ncurses
http://www.brendangregg.com/blog/2016-08-09/gdb-example-ncurses.html 1
中文版 http://blog.jobbole.com/107759/ 6


gdb, go, 程序


目前尚无回复
登录 后发表评论