(1)使用gdb调试
编译时加-g
gdb main 启动gdb调试
run 或 r 运行整个程序
start 调试程序,停留在main函数
next或n 单步调试
step或s 单步调试,可以进入函数
quit或q 退出调试
break或(b) 行号 -- 主函数所在文件的行
break或(b) 函数名
b 文件名:行号
list或l --查看代码,默认显示10行
l --默认显示主函数对应的文件
l 文件名:行号
d(el) 编号 --删除断点
i(nfo) b --查看断电
c 运行到下一个断点
p 变量 --查看变量值
ptype 变量 --查看变量类型
set 设置变量值
set argc=3
set argv[1]="12"
set argv[2]="7"
display 变量 --跟踪变量变化
undisplay 编号
b 断点 if 条件 有条件的断点 b 32 if i=1
(2)core文件
设置生成core: unlimit -c unlimited
取消生成core: unlimit -c 0
设置core文件生成名字格式; /proc/sys/kernel/core_pattern
文件不能vi写入,可以用 echo "/corefile/core-%e-%p-%t">core_pattern 必须在root用户下
使用core gdb main core
where 查看哪里出错