使用 GDB 工具调试 Go(5)

Python Exception <class 'gdb.error'> Line number 50 out of range; /home/bfosberry/.go/src/github.com/bfosberry/gdb_sandbox/main.go has 49 lines.: 

Error occurred in Python command: Line number 50 out of range; /home/bfosberry/.go/src/github.com/bfosberry/gdb_sandbox/main.go has 49 lines.

Goroutine 调试还不稳定

处理 goroutines 往往不稳定;我遇到过执行简单命令产生错误的情况。现阶段你应该做好处理类似问题的准备。

gdb 支持 Go 的配置非常麻烦

运行 gdb 支持 Go 调试的配置非常麻烦,获取正确的路径结合与构建 flags,还有 gdb 自动加载功能好像都不能正常的工作。首先,通过一个 gdb 初始化文件加载 Go 运行时支持就会产生初始化错误。这就需要手动通过一个源命令去加载,调试 shell 需要像指南里面描述的那样去进行初始化。

我什么时候该使用一个调试器?

所以什么情况下使用 gdb 更有用?使用 print 语言和调试代码是更有针对性的方法。

当不适合修改代码的时候

当调试一个问题,但是不知道源头,动态断点或许更有效

当包含许多 goroutines 时,暂停然后审查程序状态会更好

“Debugging #golang with gdb” – via @codeship —— from Tweet

GDB调试程序用法

GDB+GDBserver无源码调试Android 动态链接库的技巧

使用hello-gl2建立ndk-GDB环境(有源码和无源码调试环境)

Ubuntu上用GDB调试printf源码

Linux下用GDB调试可加载模块

Ubuntu下使用GDB断点Go程序

使用GDB命令行调试器调试C/C++程序

GDB 的详细介绍请点这里
GDB 的下载地址请点这里

英文原文:Using the gdb debugger with Go

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8a0741e1279c3f128596ebdad24eba19.html