GDB调试器
1.GDB主要完成以下三方面的功能:
(1)启动被调试程序;
(2)让被调试的程序在指定位置停住;
(3)当程序被停住时,可以检查程序状态——变量值。
2.调试步骤:
以如下程序为例(文件名为demo.c)
(1)gcc –g demo.c –o demo(生成可调试文件)
(2)gdb demo(启动调试文件)
在(gdb)光标处输入命令:
常用命令:
r(run):运行程序
l(list):查看代码 [l 1(行号)],表示从第1行开始显示,按回车继续显示
b(break): [b 18(行号)],在第18行设置断点
n(next):单步执行(不可进入子函数内部)
p(print): [p i]显示i当前状态
info b:查看断点编号
d(delete): [d 1(断点编号)]删除相应编号断点
c(continue):跳过第1个断点继续执行程序,在下一个断点停住
q(quit):退出调试
b 18 if i=3:在第18行,i=3时停住
b add_sum:在调用函数时停住
finish(不可用简写f):在结束当前函数后停止执行
step:单步执行(可进入子函数)
3.段错误调试
(1)段错误:内存错误,编译通过,执行过程中出错
该程序通过编译,执行过程中出现段错误
(2)启动GDB调试,运行,程序停在段错误处