一、GDB的使用
1.gdb的主要功能
启动被调试程序、指定位置停住程序、程序被停住时,查看程序状态(如变量值)
2.使用说明
gcc -g test.c -o test
-g使程序可被调试
gdb test
启动gdb
break main
第一个休息点:在main函数处设置断点
run
运行程序
list(l)
查看程序代码
break(b) 函数名
在某函数入口处添加断点
break 行号
在指定行添加断点
break 文件名:行号
在指定文件指定行添加断点
info break
查看所有设置的断点
delete 断点编号(info break显示出来的Num)
删除指定断点
print(p) 变量名
查看变量值
set var(变量名) = value
设置变量的值
next(n)
单步运行程序(不进入子函数)
step(s)
单步运行程序(进入子函数)
continue(c)
继续运行程序,直到遇到下一个断点
quit(q)
退出gdb
二、Coredump(核心转存)故障分析
1.作用
主要用来对付segment fault(段错误);引起原因:数组访问越界、访问空指针、栈溢出、修改只读内存
2.linux系统默认是关闭core dump功能的
打开:ulimit -c unlimited
关闭:ulimit -c 0
3.使用步骤
gcc -g test.c -o test
gdb ./test test.core