什么是调试?

调试又叫Debug,又称除错,是发现和减少计算机程序或电子仪器设备中程序错误的一个过程。

生活中所有发生的事情都一定有迹可循,如果问心无愧,就不需要掩盖也就没有迹象了,如果问心有愧疚,必然需要掩盖,那就一定会有迹象,迹象越多就容易顺藤而上,这就是推理的途径。顺着这条途径顺流而下就是犯罪,逆流而上就是真相。

我们找Bug跟侦破类似,也就是调试,如果我们写代码知道错了还继续顺着错误往下写,那越写越错;如果我们顺着错误往上找Bug那就会找出真相!

一名优秀的程序员是一名出色的侦探,每一次调试都是尝试破案的过程。

所以一个程序员如果不会自己调试,那就不是一个合格的程序员。

如果我们只会写Bug,不会改Bug,进了公司工作后,自己写的代码有Bug不会改,让别人改吗?一直让他人给自己改,那离被开除就不久了吧。

调试的基本步骤:

1.发现程序错误的存在。

2.定位错误。

3.找出错误的原因,并找到正确的解决方法。

4.对错误进行改正,重新测试。

调试中有两个功能一个是Debug、一个是Release:

Debug被称为调试版本:包含调试信息,不做任何优化,便于和程序员调试。

Release被称为发布版本:对程序进行各种优化,使程序在代码大小和运行速度上是最优的,便于用户使用。

 那么有什么用呢?

先用Debug演示一下。

注意红色圈起来的Debug和左边箭头,按F10进行调试,然后按一下F10左边的箭头就会往下走一步。可以一步一步的调试。

再用Release演示一下:

与Debug不同的是,按F10往下走,走一遍 for 循环就结束走到 return 直接就出来了,不能调试。

下面是Debug生成的文件大小与Release生成的文件大小: 

可以看到Release生成的exe文件确实小于Debug生成的exe文件,因为Release做了优化,在大小和运行速度上。

Debug:

Release: 

写好代码要调试需要在Debug上进行调试;编译好的可执行程序给用户使用,用Release。 

调试的快捷键(高频):

F5:开始调试,但是不能单独使用,一般是和 F9 搭配使用。

下面是F5单独使用,因为程序本来就有Bug,所以按F5之后就一直打印。

因为按F5之后它会一直执行,没有其它拦截的话不会停下来,直到结束。

F9:切换断点 / 设置(取消)断点。

鼠标放在左边(代码行号的左边)点一下或者 按F9 出现了红点,红点就是断点;如果再点一下或者按F9红点(断点)就会取消。

断点出现之后,鼠标放在红点上点击右键,可以进行断点设置;因为程序本身有bug,所以我给了条件 i==5,i == 5
就会停下来,不会像第一次按F5那样一直在打印,这个就是断点。

那有什么好处呢?

假如,自己写的代码有 1000 行了,前 700 行代码没问题,所以我们只需检查后 300 行代码就好了,我们把断点设置在 700
行处,按F5停下来,然后一步异步进行调试就好了。不然我们每次从第 1 行一步一步进行调试吗?那如果好几千行代码呢?浪费多少时间啊,还不如重新写一遍吧。

F10:逐过程。

按一下F10之后出现左边的箭头之后,按一次F10会往下走一步,但是有没有发现箭头没有进入 Add 函数内部,直接算了求和,打印了出来。这个就是逐过程。 

 F11:逐语句。

按一下F11之后出现左边的箭头之后,按一次F11会往下走一步,与F10不同的是,当箭头走到 Add 函数的时候,再按一次F11,会进入 Add
函数内部,走每一句。这个就是逐过程。 

上面是常用的调试快捷键,还有一些快捷键可以再了解一些,我只把常用的做了一下示范。

调试的时候怎么查看程序信息?

我前面的文章也有介绍怎么查看监视、内存等等,可以再看一下前面的文章。

下面简单再介绍一下。

 以上就是常用的调试的一些技巧。

作为一名程序员学会调试非常重要!

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信