一、什么是gdb?
gdb是Linux中的调试器。用于debug版本代码的调试
使用须知
- 程序的发布方式有两种,debug模式和release模式
- 在Linux gcc/g++生成的可执行程序,默认是release模式
- 要使用gdb调试,必须在源代码生成可执行程序的时候, 加上 -g 选项,也就是生成debug的版本
gcc mytest.c -o mytest_g -g
我们可以使用 readelf 指令查看ELF格式的文件信息:
可以看到debug的版本中有debug的数据,这也是debug版本比release版本体积大的原因。
安装gdb
sudo yum install gdb
二、gdb的使用
断点
1、显示源代码:l
(list)
l
指令并不是从第一行开始显示,如果想从第一行开始显示,可以输入l 0
,这样就会显示前10行的代码。
在gdb中按回车键即可执行上一次的指令。
2、设置断点: b
(break)
b 25
b 25
表示在第25行设置一个断点。
3、显示断点/禁用断点/开启断点:info b / disable / enable
info b
指令会显示出所有的断点。
Enb表示断点的状态,y表示断点正常使用,n表示断点已被禁用。
- 注意:断点设置时是按行号设置,设置后的断点都有各自的编号Num,对断点的操作都要对应其编号
4、删除断点:d(delete)
这里要删除第2个断点,直接d 2即可。