Linux 基础编程 -- gdb调试

gcc -main.c hello.c -o app1 -I head -g(使用 -g将源程序带调试信息打包为可执行程序app1

执行gdb调试
gdb app1(用gdb调试上述可执行程序)
start(让程序开始执行,执行一步后停下)
r或者run(让程序继续执行直到遇到断点或者结束)
n(下一步,开始单步调试,遇到函数不进入函数内部)
s(下一步,开始单步执行,遇到函数则进入函数)
c(程序继续执行到断点处或执行至结束)

查看代码
l(显示main函数文件内容)
l 10(显示第10行附近的代码段)(也可以时函数名,下同)
l hello.c:20(显示main.c函数所在文件同级目录内的hello.c的第20行前后的内容
l hello.c:print(显示main.c函数所在文件同级目录内的hello.c 中的print函数的内容)(继续按l可使该函数继续显示,第三次后直接回车即可,不需再次按l

设置断点
b 5break 5(在当前打开文件第5行加断点)(也可以时函数名,下同)
b filename:num(给文件filename的行号为num处添加断点)
b 15 if i==13(条件断点,当值增到13时才触发断点)
i b(查看已有断点信息)(information break
d num(删除断点,断点num来自上方i b

查看变量的值或类型
p i(查看当前时刻i的值)
ptype i(查看当前时刻i的类型)

设置追踪变量
display i(追踪i,每次循环打印i的值)
info display(显示所有追踪变量的信息)
undisplay num(不再追踪变量idnum的变量,num通过info display获取)

程序运行
u(半点类似于continue,会跳出单次循环,然后进行循环后面的代码)
finish(执行并跳出当前函数,回到main函数)(需要取消当前函数中会阻塞程序运行的断点)
set var i = 10(设置当前时刻程序中的变量i值为10
q或者 quit退出gdb调试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值