使用gdb:编译的时候增加-g参数
gcc fun.c main.c -o app -I ./-g
启动gdb:gdb app(对应可执行程序名)
r(run)启动
start启动-停留在main函数,分布调试
n(next)下一条指令
s(step)进入函数内部(库函数除外)
q(quit)退出gdb
设置启动参数set args 10 6(10和6为参数)/ run 10 6也可以
设置断点:b(break) 行号—主函数所在文件的行
b 函数名
b 文件名:行号
l(list)查看代码,默认显示10行
l–显示主函数对应的文件
l文件名:行号
查看断点:i(info) b 得到断点编号
删除断点:d(del)编号
c(continue)跳到下一断点
p(print)打印变量的值
ptype打印变量的类型
set设置变量的值 set argc=4 set argv[1]=“12” set argv[2]=“7”
display显示变量的值,用于追踪,查看变量情况
undisplay删除显示变量
info display查看编号
设置条件断点 b line i==1
gdb调试core文件
设置生成core:ulimit -c unlimited
取消生成core:ulimit -c 0
设置core文件格式:/proc/sys/kernel/core_pattern
文件不能vi,可以使用echo “/corefile/core -%e -%p -%t”>core_pattern
%t -添加core文件生成时的unix时间
%e -添加命令名