这个章节主要讲的是命令格式的自动补全功能和常见命令的使用,常见的命令指的是调试阶段经常会使用到的命令。
GDB中支持命令的自动补充,包括补全命令(显示出完整格式的命令)和列举命令所有参数的候选项。使用时需要双击 Tab 键。
1.对于补全完整的命令格式来说,如果存在有且只有一个可能的命令,那么命令就会被自动补全。例如:
双击 TAB 键就会补全剩余的部分,因为 info 子命令中只有 breakpiont 以‘bre’开头:
如果存在候选项不止一个,那么就会列举出所有可能的命令候选项。例如:
2.列举命令所有参数的候选项,例如:
下面介绍的命令都是我们在程序调试阶段经常使用的,下面的都是对这些命令做一些简单的介绍,后面会有更加详细的介绍。
1.查看源码使用 list 命令,使用方式展示如下:
使用 list 命令就可以查看源程序的代码,默认显示 10 行。命令缩写为 l。
2.设置断点使用到 break 命令,调试程序基本上都是在程序的运行阶段,使用这个命令可以使程序产生中断,方便我们调试。使用方式展示如下:
查看断点,可以使用命令:
3.设置观察点,使用到命令 watch ,观察点一般观察某个表达式的值是否发生变化,如果有变化,会马上停住程序。使用方式展示如下:
4.运行程序使用到 run 命令,使用方式展示如下:
run命令后跟随发给该程序的任何参数,包括标准输入和标准输出说明符(<>)和通配符(*,?,[])在内。
5.打印变量信息使用到 print 命令,使用方式展示如下:
格式符号如下:x:将数据作为整数数据,并以十六进制打印。d:打印带符号整型数据u:打印以无符号整形数据o:以八进制打印整型数据t:以二进制打印整形a:打印地址,打印16进制的绝对地址和最近符号的偏移量。可以用这个格式找出一个未知地址位于何处,找到函数地址,实例:
6.继续执行命令使用到 finish 命令和 continue 命令。finish 和 continue 的区别:
7.单步执行使用 next 与 step 命令,step与next的区别 :
8.退出GDB调试工具使用命令: