为什么需要调试?

因为程序出现问题的概率很高,甚至几乎是肯定的,那么排除错误的能力对于程序员而言至关重要。在实际项目中,调试的时间往往多于开发的时间。

而且调试工具也是一个非常好的学习工具,能让我们更好的观察运行过程和中间结果,这对于初学者理解有部分抽象概念非常有好处。

错误类型

(1)语法错误

指的是代码不符合语法规定。编译器会提示相应的错误(错在哪里,什么错误),根据错误提示修改的错误即可。

java的调试 java调试分析怎么写_idea

出现了语法错误,一定要看错误提示,看不懂可以解组翻译工具。并且吧错误记录下来,以后再碰到这样的错误就知道是什么错误,也知道如何修改。 

(2)逻辑错误

指的是程序语法没有问题,也可以运行,但是运行结果和预期不一致。由于程序是计算机自动高速运行的,我们很难准确判断问题出在哪里,所以逻辑错误的排除比较困难。当然掌握好相应的调试知识和技巧,这个问题就简单了。

调试的原理

程序是高速自动运行的,我们无法观察程序时怎样运行的,所以就无从判定问题所在。那么要想排除问题,必须先解决两个问题:

(1)能控制程序的运行节奏

(2)能观察程序运行的状态

那么要怎样去控制节奏和查看状态呢?

调试的方法

怎样控制节奏?

(1)打断点(breakpoint)

如果程序以调试模式运行,碰到断点,程序会暂停执行。

Step over(F8) 有函数时,将函数当作一条语句执行,直接输出函数执行的结果

Step into(F7) 有函数时进入函数执行函数中的每一条语句

Run to cursor(Alt+F9) 运行光标所在位置

java的调试 java调试分析怎么写_java的调试_02

 

怎样观察状态?

java的调试 java调试分析怎么写_idea_03


java的调试 java调试分析怎么写_断点_04


java的调试 java调试分析怎么写_断点_05

 

java的调试 java调试分析怎么写_断点_06


java的调试 java调试分析怎么写_java的调试_07

调试工具会标识出即将要执行的指令,据此我们就可以观察到程序的运行轨迹。

当不产生机械指令时,断点无法拦截。