【Linux(应用开发篇)】Linux C语言编程(下篇) | gdb的使用

前两篇Linux C语言编程(上篇) | gcc的使用Linux C语言编程(中篇) | make的使用讲述了在Linux下如何编译得到可执行程序,那么当程序执行结果不符合我们的预期时,如何进行调试呢?这个时候就要使用到gdb工具了~

1.gdb介绍

gdb也属于GNU项目的一部分,是一个调试工具,它的主要功能是:

  • 用户可以自定义如何运行程序
  • 可以在指定断点处运行停止
  • 可以检查各个变量的值
  • 可以动态改变程序的执行环境
    使用命令gdb -v查看系统中是否安装有gdb调试工具,若无,需要先安装:

以上一篇中的例子为例

2.使用gdb的前提

使用gdb调试可执行程序的时候,可执行程序必须要包含有相应的调试信息,这样我们调试的时候才能看到我们熟悉的名称,否则就是一堆内存地址,很不方便调试,那么如何得到带有调试信息的可执行程序呢?
其实很简单,在使用编译器(比如gcc)编译的时候带有-g参数就可以啦~
修改makefile文件如下:

然后重新执行make指令编译(若有可执行程序,先执行make clean清除):

3.gdb的使用

3.1.gdb启动调试

使用gdb <可执行程序名称>即可进入gdb调试环境,此处输入gdb cal,可以看到成功进入调试环境:
在这里插入图片描述

3.2.gdb调试命令

在gdb调试环境下,使用gdb调试命令进行调试,gdb的命令主要有以下几个:

命令描述
list(l)查看代码(默认一次显示10行)
break(b) 行号或函数名设置断点
clear(c)行号或函数名清除断点
ignore 断点号 num忽略对应断点num次
info b查看当前所设断点
r(run)运行程序
n(next)单步调试,不进入函数调用
s(step)单步调试,进入函数调用
p(print)变量名查看变量
display 变量名每次自动显示该变量值
c(continue)继续运行,直到结束或遇到新断点
finish运行程序,直到当前函数完成返回
q(quit)退出
shell command执行shell命令

3.3.gdb调试实例

首先查看代码:

然后在第7行设置断点,注意设置了断点之后程序会停在第7行前,也就是不执行第7行

然后单步执行,但不进入函数,再次查看变量值:

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mculover666

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

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

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

打赏作者

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

抵扣说明:

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

余额充值