Linux调试器--gdb/cgdb

1、预备:

          我们利用vim在Linux下写好代码,在用Makefile编辑代码并运行,但如果一个代码有问题,我们如何像在编译器上调试一样在Linux上调试代码,就可以用到gdb/cgdb.

        gdb调试代码需要源代码为debug版本,但g++/gcc默认运行的代码是release版本,所以在编译时我们需要用到-g选项。

以下面代码为例:

vim:

makefile:

eg:

2、gdb中的命令

预备:

                r(进行调试运行)相当于F5

                quit(q)退出gdb

        (1)l + 行号/函数名(查看想要看的代码):

        

gdb会记录最近的命令,持续回车会一直进行该命令:

        (2)b + 行号/函数名(打断点,并自动形成断点编号)

        info + b (查看断点)

        d + 编号(删除断点)

disable 编号(禁用断点)

enable 编号 (启用断点)

        (3)n(逐步执行代码,逐过程相当于F10)

        (4)s(单步进行,进入函数内部,相当于F11)

        (5)display + 变量名(窗口显示变量值)(本质上也是一个断点,类型为可视断点)

                undisplay 编号(取消常显示)

        (6)until + 行号(跳到指定行)

        (7)c(从一个断点调至下一个断点)

(8)finsh (执行当前函数)

        (9)watch(查看变量的新旧值变化)

        (10)p 打印变量值

        (11)set var +变量 = xxx(改变变量的值为xxx)

从上面代码我们可以看出代码运行出错了,所以我们调试找出错误

利用断点不断找我们确定错误出现在除法,则我们通过在调试中改变变量的值来进一步确定并纠正错误

        (12)b +行号 +if...(添加条件断点)

        (13)condition 编号在已存在的断点上添加条件

3、cgdb

在gdb中我们无法边看代码边调试造成我们断点设置麻烦,所以我们有了cgdb可以让我们更好调试

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值