00:00
本小节呢,我们来学习一下调试,在日常编码过程当中呢,我们难免会遇到一些问题,那么如何把这个问题找到呢?成为一个每一个开发者非常头疼的问题,越复杂的程序呢,出出问题的概率呢也就越大啊,如果有人说他的程序一个问题都没有啊,那说明他的这个程序的呃,复杂度呢,不够复杂,太简单了啊。然后最有效找到问题的这个手段之一呢,就是代码调试了,然后这个问题呢,它有一个专业的术语叫做bug bug呢其实翻译成中文那就是个臭虫啊,这接下来呢,给大家讲个小故事,在这个世界上呢,最早的那个计算机呢,叫做艾迪拉克,呃,它的英文名呢,In a AC啊,相比现在的电脑来说呢,它非常大,大家可以看一下左下角这张图啊,各种这种像这种柜子一样的东西组成的啊,一台电脑,大家所看到的这这个东西呢,其实它是一台电脑。
01:17
啊,然后突然有一天呢,这个机器故障了,就是不不正常运行了,然后啊,一帮人都换了各种什么二极管啊,这种这种电子元器件呢,发现啊通通都没有效果,然后这个时候呢,就是大家在不断的呃发一筹莫展之际呢,就是有个人呢,他在这个这个这个大柜体里面,这个像个柜子一样的,这个柜体里面呢,发现了一只啊一只虫啊这只虫呢就飞飞进去了,就是卡在这个啊这个机器里边,然后导致呢啊这个东西不能用,后来啊这个把这个从找到了之后呢,这个机器呢,就恢复了运转,这个过程呢,就是称之为啊debug啊它就是呃翻译成中文呢,就是叫调试是吧,找到找到这个呃,Bug它在哪里啊,找到这个。
02:18
这虫子卡在哪个地方啊,这就是啊调试的这个由来,然后我们来看一下,就是说啊在这个呃,这个编码我们自己编码的过程当中呢,如何去做一个调试,首先呢,我们在这个visual studio上边呢,我们能找到这个这个debug的这样的一个字样,然后当前呢,它选中的就是这个debug,然后这个时候啊,如果是debug的状态下,我们才才能进行调试,然后呢,这个呢,就是呃,我们在开始基于这个状态下进行运行。然后右边这张图呢,就是这个红颜色的啊,这个红点呢叫做断点,就是代码执行到第44行的时候有一个断点,然后这个这个程序呢,就会停在这里,然后让我们去观察这个程序内部发生了一个怎样的变化啊这个呢就是做一个debug调试,然后我我来我来给大家就是啊演示一下,我在这个地方呢,打了一个在这个run方法里面打了一个断点,然后啊,这里呢,这个左左左上角呢,这边呢,它是一个,它这里我们选择的是debug,然后我们运行一下,前提是啊,这个方法要被调用啊,要被调用,如果没有被调用的话呢,它是不会不会进入断点的。
03:49
好,我们我们在这里也打个断点试一下啊。这个时候呢,它这里有个黄颜色的箭头,就是代表我们当前所执行到的代码的位置,然后接下来我们想这是这这一行代码呢,是吧,我们把鼠标放到这个呃,变量名上面,我们可以看到它就是一个什么空值now null,它是一个空对象啊,然后这个时候我们怎么样这个这个执行的这个行数继续往下走呢,我们可以按一下F10。
04:27
是吧,大家可以看到从这个断点开始,然后依次往下走。然后这个时候我们看到这个person类,它已经被什么初始化了,然后它的这个啊年龄啊,名名字都是它的这个默认值啊,就是这个int类型呢,通常都是默认值就是为零,然后这个name的这个值呢,就是now啊,因为它是一个什么引用类型。然后接下来。我们继续往下走,这个时候呢,我们给这个张三这个name呢,附了一个值叫张三,这个时候啊,我们调试的时候就能看到这个啊,这个这个这个值的一个变化。
05:12
然后这个时候呢,我们再进入到这个run的方法内部,这个时候我们想继续看细节的话,就要按这个什么F11。然后这个时候呢,我们进到这个方法内部。然后我们再逐步执行,逐步执行就是F10。啊。啊,逐过程执行是是F10,逐步骤执行是F11 f11看细节,F10看过程啊就是这么去理解,然后这个时候我们继续调试鼠标放上去I又能看到它是吧?这个参数列表里面有个值是吧?100J呢也是100,然接下来这里100加上100这个M你的现在是零,因为这个字据代码没有被执行,然后我们按下F10。
06:04
这里大家可以看到,计算完成了之后,M的结果变成200是吧,然后再看这个这个name,我们在外面已经复制为这个张三了,张三跑了M米啊,加上我们这里加计算好的这个200,然后米啊,然后他被输出出来。怎么看这里看到没有?张三跑了200米,这时候这个控制台就发生了变化。然后return,这个时候呢,它return出来的一个值呢,就是200好这个时候啊,我这个控制台输出的语句啊,没有被执行,我们来看一下这个,呃,界面上你看这下面只有这一句话,当我们逐过程执行按了F10之后。我们再来看这个界面。你看200出现了,所以我这个调试呢,就可以详细的观察到程序内部发生的一些细节和变化,这就是调试啊,大概是这样。
我来说两句