对你有帮助的话能否一键三连啊!祝每个人心想事成!
什么是Bug?
首先我们先了解一下日常口语中的“Bug”是什么
Bug可以理解为计算机程序错误,编程时的漏洞
调试及重要性
顾名思义,调试就是通过工具找出bug存在,找出代码里面的错误,否则出现漏洞,造成程序崩溃甚至经济损失
调试基本步骤
1:通过工具找出错误所在
2:通过各种方式对bug定位
3:确定产生bug的原因
4:提出解决方案
5:修改漏洞(bug),重新测试是否修改成功
Debug版本和Release版本介绍
在编译器中我们可以看见
Debug是调试版本,通常是程序员编辑代码时用的版本
Release是发布版本,用于优化代码性能,通常为发布版本,不可以调试
这两个版本都可以运行,不同的是性能区别,你可以理解为Debug是包装工厂的,然后再把它转化为Release版本发布给用户
同时在编写的代码文件位置,也有这两个文件
例如:我有一个动态爱心代码,那么在文件管理中我们可以看到这两个版本
Windows调试环境
我们先来认识几个快捷键,通常在调试上使用
我们可以看到这几个快捷键
F5,F11,F10 , B(新建断点)
我们一个个介绍
首先(一般我们直接按 F10 或者 F11 进入调试,F5很少用)
F5:调试按钮,点开有调试效果,点它后会开始调试,(调试可以理解为检测代码),在有断点的地方停下
F10:按F10后同样有调试效果,所以一般我们之间按F10或者F11(重要的是区别),就不再单独按调试(F5),在有断点的地方停下来
F11:按F11同样有调试效果,但是同F10不同的是,按F11可以快速进入一个函数内部,如果你想观察一个函数的运行,可以点击F11,点F10就跳过去直接得出函数的返回值了,在有断点的地方停下来
B(放置断点):新建断点,让按F5或者F10或者F11后在这个断点的地方停下来,通常在需要观察的入口放一个断点,不然调试按钮后,程序就直接运行完了
注意:如果要跨函数(一般我们写工程需要创建多个源文件),同样直接打个断点就行了,记得按F11进入函数啊!例如:
如何放置一个断点?
在需要放置断点的地方鼠标点击开对应最左边的灰色区域
下面我们看调试后的环境
例如:先进入调试环境,再打开窗口,就可以看到下面这幅图的效果了
我们再介绍几个经常用的功能 (如果你的F键功能区出现了多个按键效果,比如:加减音量,屏幕亮度,可以按 Fn+Esc 关闭其它功能区,再按一次就重新打开了,这样可以保证进入调试时没有其它功能效果干扰)
首先第一个:监视
打开监视,可以看到下面这幅图最右边有四个监视口,大家随便点一个都行,这里没区别
点监视口后我们看到下面这幅图,输入你要监视的变量,就是“添加要监视的项”(比如printf, i, 数组名:Arr) ,输入好变量后,我们再按F11或者F10,一步步进行语句执行观察你输入的变量变化(注意,调试后语句会在之前说的那个断点停下来,所以一定要创建断点)
注意:输入的变量值会随着按F11或者F10逐渐发生变化
其次第二个,内存变化(地址)
跟监视前面步骤差不多一样,我们直接选择四个内存中的一个(都可以选!看哪个顺眼)
然后我们输入要观察的地址,比如“ &a ”" 数组名:Arr(直接输入Arr,我这里是告诉你它是数组名) ",就可以观察观察目标地址变化,或者你要查找变量的地址,直接输入就行了哦
注:最右边的那个‘’ 就是控制显示的列数,可以自己体验一下
我们经常用到是这几个按钮,在初阶我们掌握这几个就行了,只要在发现程序错误时,我们可以使用以下完整顺序查找错误:
1:按 F10 或者 F11 或者 F5 快速进入调试
2:打开监视输入变量,或者想查看内存变化就打开 内存(M)
3:再按 F10 或者 F11 一个一个语句进行,观察输入变量的值的变化,查找错误地方
4:知道哪里错了后,去修改就行了
注意:调试查找Bug是每个程序员必须掌握的哦
我们来简单体验一下:(通过调试观察下面错误代码)
首先我们先在for循环那里打一个断点,F11或者F10进入调试
在监视那里输入 i Arr每个数组元素
同时可以看i每加一,打印了多少次
大概效果就是这样,通过调试可以观察 到每个变量的变化,以便及时查找原因
如何写出好的代码
什么是好的代码,有以下特点
运行正常
bug少
效率高
可读性高
维护高
注释清晰
文档齐全
我们参考一个例子(用来拷贝字符串)
我们看几个问题
1:我们在拷贝字符串的同时,也改变了原来的那份(就是被复制的模板)
2:if判断部分虽然很清晰,但是它可以省略,更加专业化
我们参考下面这幅图,对比一下
我们介绍1个功能:
assert: 头文件cassert.h在后面写表达式,当不满足时可以报警,这相对于if多了一个警报,可以避免跳过错误直接返回:return 0
相比于原版本,我们解决了以下问题
1:备份了Urr,可以在返回时不用写成“return Urr-6” ,这样相比可以让读者更懂,当然要写备份注释啊
2:一条语句判断更简洁,这需要知道部分库函数功能
3:更加简洁,更专业哈哈!
编程常见错误
最后,我们简单了解一下几类错误,了解就行啊
语法错误,通常是不注意大小写,函数写错,掉了分号
链接型错误,比如没有包含头文件,库函数名字写错
运行错误,代码不能正常运行