//编译
gcc -g -o test test.c
//GDB
gdb test
break 10
b 10
break 10 if i==3
break funtion if i==3
run
next
n//单步执行程序语句
continue
c//执行到下一个断点
step
s//进入函数,单步执行每一条语句
disable 1
enable 1//禁用和恢复断点编号1
delete 1//删除断点编号1
clear 10//删除第10行的断点
print i
print i+1
print $ //打印上一个
print $$ //打印上上一个
print data[2]@3 //打印data[2]开始的三个数据
display i //每次到断点的时候都会打印
disable display 1
enable display 1
delete display 1
whatis i //查看表达式的值和数据类型
ptype i //除了显示值和数据类型,还会给出类型的定义(结构体,类)
set //修改变量(一般为循环变量)的值
x/<n/f/u> <addr> //查看内存地址中的值
n:内容的个数
f: 输出的格式 x:十六进制 d:有符号十进制 u:无符号十进制 c:字符 f:浮点数格式 o:八进制整数 t:二进制整数
u:请求的字节数 b:字节 h:双字节 w:4字节 g:八字节
watch: 为表达式或者变量设置一个监视点, 变量被写或者表达式
rwatch: 为表达式或者变量设置一个监视点, 变量被读或者表达式
watch: 为表达式或者变量设置一个监视点, 变量被写/读 或者表达式
list
list + //显示当前行号后面的代码
list - //显示当前行号后面的代码
list 1,5 //1-5行的代码
list ,5 //当前行到第5行
set listsize 10
show listsize
disassemble //汇编代码
info line 10 //显示第十行源代码的内存地址
info line funtion