GDB 主要帮助你完成下面四个方面的功能:
- 启动程序,可以按照自定义的要求随心所欲的运行程序
- 可让被调试的程序在所指定的调置的断点处停住(断点可以是条件表达式)
- 当程序被停住时,可以检查此时程序中所发生的事
- 可以改变程序,将一个 BUG 产生的影响修正从而测试其他 BUG
调试流程
生成可执行、调试的文件
-g 选项的作用是在可执行文件中加入源代码的信息,比如可执行文件中第几条机
器指令对应源代码的第几行,但并不是把整个源文件嵌入到可执行文件中,所以在调
试时必须保证 gdb 能找到源文件。
常用命令
启动和退出
给程序设置参数/获取设置参数
帮助
查看当前文件代码
查看其他文件代码
设置显示的行数
设置断点
查看断点
删除断点
设置断点无效
设置断点生效
设置条件断点
运行GDB程序
继续运行,到下一个断点停
向下执行一行代码(不会进入函数体)
变量操作
向下单步调试(遇到函数进入函数体)
自动变量操作
其它操作
多进程
使用 GDB 调试的时候,GDB 默认只能跟踪一个进程,可以在 fork 函数调用之前,通过指令设置 GDB 调试工具跟踪父进程或者是跟踪子进程,默认跟踪父进程。