最恶心的调试器gdb入门

1,gdb的打开

首先如果想要使用gdb调试代码,gcc/g++默认编译生成的文件是不带调试信息的release版本,无法用gdb调试,可以通过在编译时加入-g来生成带有调试信息的debug文件,具体例子就是gcc test.c -o test -g

使用gdb调试代码,首先在linux命令行输入gdb+可执行文件(有的云服务器或虚拟机没有自带gdb,可以使用yum命令安装。

2,gdb的退出

现在我们进入了gdb中,发现怎么输入命令都是错误的呢?这是因为进入了gdb就只能输入gdb自带的命令了,当然gdb可以用quit命令退出。

3,显示代码

第一次进入gdb的你肯定一脸懵,我代码呢?没代码怎么调试?这时我们可以输入l 0(是字母l和数字0哦)来查看代码,默认会生成十行,输入了一次这个命令后接下来按回车可以继续执行一次前一个命令,以此来显示出你完整的代码。

4,基础操作

接下来学习最重要的断点,对应vs中的f9,b+行号是添加断点,使用info b命令可以查看你添加的断点,然而在删除断点的时候就没这么容易了,要使用d+断点编号删除,所谓断点编号就是在info b中显示的编号(gdb貌似很喜欢编号,后面还会用到)。

然后就是逐过程和逐语句调试了,在gdb中n表示逐过程,对应vs中的f10,s表示逐语句,对应vs中的f11,(差别就是是否进入函数)。

5,查看变量

p+变量名可以查看一个变量当前的值,bt命令就是查看调用堆栈,帮助你理解函数的嵌套调用关系,显示的图表中被调用的在调用的上面,有点类似数据结构中的栈。

如果一个函数中有一个循环一万次的代码,我要用n或s一步步调试吗?这时候就可以使用finish命令,直接结束这个函数的调试,跳转到这个函数外。

display+变量名可以长显示一个变量,在你的每次过程调试中都显示那个变量实时的值,方便观察,可以用undisplay+编号取消。

6,断点开关及跳转

until+行数可以令调试中的代码跳转到第n行,c命令可以从一个断点跳到下一个断点去disable+断点编号可以关闭一个断点,enable+断点编号可以开启一个断点,set var i=100命令可以设置一个变量的值,方便在循环中具体的控制变量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值