目录
前言
一、前情了解
二、gdb常用命令
1.基本指令
2.断点
3.调试过程
4.查看内容
前言
gdb是Linux环境下了一个调试工具,在代码运行出现问题时,我们可以通过它来进行调试,找出问题的所在。本文来带大家来了解一下gdb的使用方法。
一、前情了解
在使用gdb之前,代码要用gcc进行编译。编译之后得到的可执行文件才能使用gdb来调试。但是要注意,gcc要加上”-g“这个选项,从而得到debug版本的可执行程序,这种版本的程序中包含着调试信息。由于包含调试信息,所以debug版本的可执行程序较大。如下图所示:
我可以通过如下指令来查看文件信息:
readelf -S
# readelf用来查看ELF格式的文件信息,常见的文件如在Linux上的可执行文件
# -S用来读取代码的各个段
release版本的查询不到调试信息,但是debug版本的可以查到。入下图:
二、gdb常用命令
1.基本指令
- gdb + 文件命:对此文件开始调试
- quit:退出gdb
- l + 行号:显示源代码,接着上次的位置向下,每次10行
注:gdb会记录最近一条命令,如果下一条命令和上一条相同,直接回车即可
2.断点
用vs中调试的按键对比:
- b + 行号:给这一行打上断点
- info + b:查看当前已有的断点
- d + 断点编号(通过”info + b“来查看):删除断点
- r(F5):开始调试,转跳到第一个断点,如果没有断点,调试直接结束
- c(多次F5):跳到下一个断点出停下来
- disable / enable + 断点编号:关闭 / 打开断点
3.调试过程
- n(F10):逐过程调试
- s(F11):逐语句调试
- finish:跑完当前函数就停下来
- until + 行号:转跳到指定行(不建议使用)
- bt:查看当前调用的堆栈
4.查看内容
- p + 变量名:打印变量的内容
- display + 变量名:此变量常显示
- undisplay + 变量编号:此编号的变量取消常显示