1.gdb的启动与退出
启动:gdb 程序文件名/file 文件名
run:运行该程序
注:-q 可不显示版权说明
退出:quit
2.显示和查找程序源代码
list/li:显示10行代码
list 5, 10:显示5到10行代码
list 函数名:显示该函数周围的代码
list 文件名:5, 10:调试含有多个源文件的程序时使用
list 文件名:同上
3.设置与管理断点
3.1 断点设置
1.行号设置:break 行号
2.函数名设置
3.条件表达式:break 行号/函数名 if 条件
4.不需要指定行号和函数名的表达式设置:watch 条件表达式
3.2 查看断点:info breakpoints
Disp:中断一次后是否失去作用
是为dis,不是为keep
Enb:当前断点是否有效
3.3 使中断失效或有效
disable 断点编号
enable 断点编号
3.4 删除断点
clear:删除所有断点
clear 行号
clear 函数名
delete 断点编号(如果一次删除多个断点,以空格隔开)
4 查看和设置变量的值
4.1 查看值
1.print 变量/表达式
2.print 变量=值 : 进行赋值
3.print 表达式@要打印的值的个数n:打印以表达式值开始的n个数
4.2 查看值的类型:whatis 变量/表达式
4.3赋值:set variable 变量=值
5 控制程序的执行
1.continue/cont:运行直到下一个断点或运行完为止
2.kill:结束当前调试
3.next:遇到函数调用一步走完
4.step:遇到函数调用进入函数内部
5.nexti:单步执行一条机器指令
6.stepi
通常一条语句由多条机器指令构成