Linux调试工具_gdb的基本操作

这里以简单的求1到100数字和为例

1.给程序添加调试信息(gcc -g)

在这里插入图片描述
如果直接gcc生成可执行程序的话是没有调试信息的,无法进行调试
在这里插入图片描述
在这里插入图片描述
因为Linux中程序生成默认生成可执行程序为动态链接Release版本,不能进行调试

可以在 gcc后加 -g选项来生成Debug版本
在这里插入图片描述
如图,添加了调试信息后可执行程序明显变大
在这里插入图片描述

2.调试基本操作

开始调试 gdb+文件名

gdb拥有指令记忆功能,按回车默认执行上一次执行的命令

1.l(list)+n:从第n行开始显示代码,l表示继续显示代码

2.r(run)开始调试或重新调试(到断点位置)

3.n(next):下一行(逐过程,不会进去函数内)

4.s(step):下一行(逐语句,会进函数内)

5.until+n:直接跳转到第n行(如果第n行代码是无效的eg:空行或者是return等,则跳转到最近的一行有效代码上)、

6.finish:结束正在调试的函数

7.c(continue):跳转到下一个最近的断点处(下面没有断点就结束)

8.set var +变量:修改变量的值

9.bt:查看调用栈

在这里插入图片描述

断点

1.b+n:在第n行上打断点
b+函数名:给某个函数打断点

2.info+b:查看所有的断点信息

3.d+n:删除序号为n的断点(注意不是第n行的断点)

在这里插入图片描述
其中y表示断点是开启状态

4.disable+断点序号:(不删除断点)禁用断点
在这里插入图片描述
n表示断点禁用

5.enable+断点序号:重新启用断点

监视

1.p+变量:查询此时变量的值
p+&变量:查询变量的地址

2.display+(&)变量:将变量添加到监视列表(在变量生命周期中可以一直看到它的值)

3.undisplay+n:删除监视列表中序号为n的变量

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NUC_Dodamce

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值