Makfile文件与GDB调试工具的使用

Makefile

什么是Makefile

在这里插入图片描述

文件命名和规则

在这里插入图片描述

演示

在这里插入图片描述
在这里插入图片描述

工作原理

在这里插入图片描述

原理的演示

第一个原理
  • 也解释了makefile文件的其他规则一般是为第一条规则服务的(默认执行第一条规则,如果下面的规则与第一条没有关系,则不会执行下面那条没有关系的规则)
  • 该版本的效率比前面第一种makefile版本的效率更高

在这里插入图片描述
在这里插入图片描述

第二个原理
  • 更改之前进行make,显示app已经是最新的

  • 更改了一下man.c后,main.c的时间晚于main.o,再进行make,发现执行了如图中的命令
    在这里插入图片描述

变量

在这里插入图片描述

演示

在这里插入图片描述
在这里插入图片描述

模式匹配

在这里插入图片描述

演示

在这里插入图片描述
在这里插入图片描述

函数

在这里插入图片描述
在这里插入图片描述

演示

在这里插入图片描述
在这里插入图片描述

补充

1. clean

  • 删除一些不需要的文件,如上述示例生成的.o文件

在这里插入图片描述
在这里插入图片描述

伪目标(没懂)

  • clean作为目标, 没有找到对应的依赖文件, 所以不执行

在这里插入图片描述

  • 设置一个伪目标(新建的文件clean),再次执行,执行成功

在这里插入图片描述

GDB

什么是GDB

在这里插入图片描述

准备工作

在这里插入图片描述

演示

gcc -g -Wall test.c -o test
//下图为调试与未调试的大小对比,说明调试后是会往可执行文件里添加信息

在这里插入图片描述

GDB命令

启动、退出和查看代码

在这里插入图片描述

演示与注意
  • 在进行准备工作之后才可以启动调试。(一定要进行准备工作,也就是-g)
  • 源代码文件要与进行准备工作后的文件放在同一个目录下(可以自己试一下,用list去查看文件)
  • 按回车默认执行上一条命令
  • 查看非当前文件代码不能只写一个文件名,不然会当成函数去查看,会查不到

在这里插入图片描述
在这里插入图片描述

多个文件编译调试,为了演示查看非当前文件代码后面的查看代码命令(自己试一试吧,没啥)

在这里插入图片描述

test1文件是之前没有进行调试编译后的文件

在这里插入图片描述

源文件更换后,list看不到信息
在这里插入图片描述

断点操作

在这里插入图片描述

演示与注意
  • 重新退出gdb,之前设置的断点将清除,需要重新设置
  • 断点信息里的Enb是enable(可用)的缩写,可用disable使之无效(N),也可用enable使之有效(Y)
  • 条件断点为最后一张图的演示
  • 其他的断点设置自己试一试,就不再演示了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

调试命令

在这里插入图片描述

演示与注意
  • run停在断点那,断点那行并没有执行
  • until跳出循环的条件:循环内的语句不能有断点
  • finish跳出函数的条件:函数内不能有断点
  • next与step的区别:如图三和图四

在这里插入图片描述
在这里插入图片描述

next:(并没有进入到bubbleSort函数体里)

在这里插入图片描述

step:(进入到bubbleSort函数体内)

在这里插入图片描述

自动变量:

在这里插入图片描述
在这里插入图片描述

设置变量值:

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

羊小滑

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

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

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

打赏作者

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

抵扣说明:

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

余额充值