1.添加调试信息:gcc -g ....
2.list(l):查看程序
3.直接enter回车:重复上一条指令
4.break(b)+ 行号n:在源程序第n行处打断点
break(b)+ 函数名:在函数入口处打断点
break(b)+filename:linenum:在文件filename的linenum行处打断点
break(b)+......+if<condition>:条件断点,condition表示条件
5.info break(ib):查看断点信息
6.run(r):运行程序,在第一处断点处停止
7.next(n)+ <count>:单步执行count步,可以不带count
8.step(s)+ <count>:进入函数
9.finish(f):运行完函数并退出函数
10.continue(c):继续运行,在下一断点处停止
11.print(p):打印变量的值,只打印一次
12.watch(wh):监控变量的值,每次变量改变都会停止运行并打印变量的值
info watchpoints:查看观察点信息
13.bt:查看函数堆栈
14.shell + (ls等shell指令):同vim的(!+ shell指令)一样
15.make指令:gdb支持make重新build程序
16.程序运行参数:
set args:可指定运行时参数
show args:可以查看设置好的运行参数
17.设置捕捉点:catch <event>
当event发生时,停住程序,event可以是以下内容:
a.throw:抛出异常
b.catch:捕捉到的异常
c.exec:调用系统调用exec时
d.fork:调用系统调用fork时
e.vfork:调用vfork时
f.load:载入共享库(动态链接库)时
g.unload:卸载共享库时
18.维护停止点:
a.clear + <function>/<linenum>:清除函数function上或行号linenum上的停止点,如果不指定<function>/<linenum>,则清除所有的已定义的停止点
b.delete + [breakpoints]:删除指定断点,如果不指定断点号breakpoints,则删除所有断点
c.disable + [breakpoints]:不使能指定断点,如果不指定断点号breakpoints,则不使能所有断点
d.enable + [breakpoints]:与disable相反
19.条件断点维护:if 和 ignore
20.为停止点设定运行命令:
commands [breaknum]
command-list
end