ego008
ego008
3645 0 0

使用 GDB 调试 go 程序

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/
The tips of using gdb to debug Golang program
http://nanxiao.me/en/the-tips-of-using-gdb-to-debug-golang-program/

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

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

0

See Also

Nearby


Discussion

Login Topics