安装
yum -y install gdb
加载调试程序
- 在启动gdb时指定加载的文件
gdb xxx(xxx为可执行程序的名称,默认在当前目录寻找,如果找不到,则报错。)
xxx为-g编译出来的待调试信息的可执行文件
- 在启动gdb以后再gdb命令行中加载程序
file [可执行文件名]
查看程序内容(在gdb命令行下)
- list 或l :从源代码的开头列出程序内容
- list n:列出第n行前后10行的代码。(n为行号)
- list n1,n2 : 列出n1行到n2行之间的源程序
执行程序
- run : 开始执行程序
- run arg1 arg2 …: 给main()函数传参
- show args : 显示传给main()函数的参数。
- set args arg1 arg2 : 重新设置main() 函数的参数
给main()函数设置参数以后,如果下一次运行不提供参数,则使用上次的参数作为默认参数
设置断点
- (gdb) break linenumber : 根据行号设置断点
- (gdb) break funcname : 根据函数名设置断点
- (gdb) break filename: linenumber : 在非当前文件,根据行号设置断点
- (gdb) break filename: funcname :在非当前文件,根据函数名设置断点
- (gdb) break linenumber if expr :根据条件停止执行程序
break也可以使用b
查看断点信息
- info b或 info break
删除断点
- delete [编号] : 删除一个断点,其中的编号为info显示信息的编号
- delete [编号]-[编号] : 删除一个断点的集合
查看变量信息
- p [变量名] : 查看变量的内容
- ptype [变量名] : 查看变量的类型
- display [变量名] : 跟踪变量值
- undisplay [跟踪变量的编号(display中的)] : 取消跟踪变量
查看当前存在的栈帧
- bt : 查看当前存在的栈帧
- frame [n] : 切换到编号为n的栈帧,n为 bt命令中的编号。