为什么需要调试?
因为程序出现问题的概率很高,甚至几乎是肯定的,那么排除错误的能力对于程序员而言至关重要。在实际项目中,调试的时间往往多于开发的时间。
而且调试工具也是一个非常好的学习工具,能让我们更好的观察运行过程和中间结果,这对于初学者理解有部分抽象概念非常有好处。
错误类型
(1)语法错误
指的是代码不符合语法规定。编译器会提示相应的错误(错在哪里,什么错误),根据错误提示修改的错误即可。
出现了语法错误,一定要看错误提示,看不懂可以解组翻译工具。并且吧错误记录下来,以后再碰到这样的错误就知道是什么错误,也知道如何修改。
(2)逻辑错误
指的是程序语法没有问题,也可以运行,但是运行结果和预期不一致。由于程序是计算机自动高速运行的,我们很难准确判断问题出在哪里,所以逻辑错误的排除比较困难。当然掌握好相应的调试知识和技巧,这个问题就简单了。
调试的原理
程序是高速自动运行的,我们无法观察程序时怎样运行的,所以就无从判定问题所在。那么要想排除问题,必须先解决两个问题:
(1)能控制程序的运行节奏
(2)能观察程序运行的状态
那么要怎样去控制节奏和查看状态呢?
调试的方法
怎样控制节奏?
(1)打断点(breakpoint)
如果程序以调试模式运行,碰到断点,程序会暂停执行。
Step over(F8) 有函数时,将函数当作一条语句执行,直接输出函数执行的结果
Step into(F7) 有函数时进入函数执行函数中的每一条语句
Run to cursor(Alt+F9) 运行光标所在位置
怎样观察状态?
调试工具会标识出即将要执行的指令,据此我们就可以观察到程序的运行轨迹。
当不产生机械指令时,断点无法拦截。