写点什么

gdb 调试工具使用

用户头像
正向成长
关注
发布于: 2021 年 04 月 21 日
gdb调试工具使用

在日常代码调试用经常用到 gdb 工具,而却很难搜索到高质量的使用简介,对此,我将对使用过的 gdb 经验进行记录和分享,会随着对 gdb 的使用进行更多的补充。


启动方式

# 直接对可执行程序进行GDB调试gdb program
# 调试运行程序和core文件gdb program XX.core
# 指定服务运行时的进程ID,GDB会自动attach并调试# 也可以执行gdb program进入之后,执行attach program_pidgdb program <program_pid>
复制代码

记录执行过程

用 gdb 调试程序时,可以使用set logging on命令把执行 gdb 的过程记录下来,以作参考,默认记录在gdb.txt文件中,同时支持设定。

# Enable/Disable logging.set logging on/off
# 设置当前的logfile,默认是gdb.txtset logging file file
# 覆盖/追加到logfile,默认是追加set logging overwrite on/off
# 显示logging设置show logging
复制代码

信息显示

版本信息

如果想要查看 gdb 的版本信息,进入 gdb 后执行

show version
复制代码


gdb 启动时会显示很多的版本信息,如果不想显示这些信息可以通过启动 gdb 时添加-q选项。

gdb program -qgdb program core -qgdb program pid -q
复制代码

也可以在~/.bashrc中,为 gdb 设置一个别名:

alias gdb="gdb -q"
复制代码

输出信息量控制

当 gdb 输出的日志信息太多的时候,gdb 会暂停,并在页面显示---Type <return> to continue, or q <return> to quit---的提示信息,等待用户输入,我们可以通过修改屏幕的宽度和高度来实现对信息显示高度和宽度的控制。

# 设置当前屏幕实现lpp行set height lpp# 等价于set height 0set height unlimitedshow height
# 设置当前屏幕实现cpl个字符set width cpl# 等价于set width 0set width unlimitedshow width
复制代码


也可以通过输出分页模式来控制是否进行多页输出,默认打开分页模式。

# 关闭/打开输出分页,关闭输出分页等价于set height unlimitedset pagination off/on# 查看分页模式show pagination
复制代码


参考资料

  1. 100个gdb小技巧

发布于: 2021 年 04 月 21 日阅读数: 51
用户头像

正向成长

关注

正向成长 2018.08.06 加入

想要坚定地做大规模数据处理(流数据方向),希望结合结合批处理的传统处理方式,以及之后流批混合处理方向进行学习和记录。

评论

发布
暂无评论
gdb调试工具使用