1、什么是 Debug
编译出错不运行,但是 程序的运行结果
和 你预先的结果
不一样
2、什么是 断点调试
每行代码 都跟踪运行,运行过程中,看到 变量的变化
、方法的调用
3、Debug 常用操作
断点:程序到达断点后,就不再运行了,等着指挥它运行
F6:运行 本行代码
F5:进入 方法体
即时窗口:帮助你单独运行一些程序,打开方式是 Window
---> Show View
---> Expressions
4、举例分析
4.1、创建 Debug.java 文件
该文件是 遍历数组 的典型案例
package xyz.wenkang;
public class Debug {
public static void main(String[] args) {
int[] arr = { 1 , 2 , 3 , 4 , 5 } ;
System.out.print( "[" );
for (int i = 0; i < arr.length; i++) {
if ( i == arr.length - 1 ) {
System.out.print( arr[i] );
} else {
System.out.print( arr[i] + "," );
}
}
System.out.print( "]" );
}
}
Run As Java Application
运行结果:

4.2、进行 断点调试
4.2.1、打开 即时窗口
打开方式是 Window
---> Show View
---> Expressions

4.2.2、打开 Debug 模式
打开
Skip All Breakpoints
,防止 后面打断点时出现带斜杠的断点
Skip All Breakpoints
带斜杠的断点
正常断点(不带斜杠的断点)
将代码以 Debug As Java Application
运行

出现如下界面:

理解几个 Debug模式
的 重要概念:
Skip all breakpoint
该图标当前状态是指开启所有断点:只要程序是debug
模式,且程序中存在断点,则程序运行过程中会经过每个断点处。如果对程序中某些代码存在问题,则可在该行代码打上断点resume
如图中的状态代表程序处于等待中。如果直接点击,程序将继续运行直到下一个断点为止或程序结束,快捷键F8Step into
如果当前程序存在调用的情况,则会进入被调用的内容。如果对调用的方法不明白,想看被调用的方法内部是如何运行的可点击该图标。快捷键F5Step over
如果点击程序只会在当前方法中按顺序执行。该过程是开发过程中用得最多也是最能快速发现问题的过程。快捷键F6Debug
:这是一种debug
视图 。一般进入debug模式
都会开启该视图Veriables
:这里存放了当前类中的变量,可查看变量值
Breakpoint
:这里记录了所有断点记录,可进行跳过、删除断点,查看断点属性(如断点在什么地方打的),其中hit count
设置执行次数适合程序中的for循环(设置breakpoint view
- 右键hit count
)

4.2.3、进行 Debug 逐行调试
例如,我在 第11行 设置一个断点,出现以下变化
首先,设置断点的后面代码块不会运行(包括设置断点行的代码)
然后,变量区域会出现运行代码块中 变量的变化,控制台也会输出运行代码块的内容

5、Debug 的意义
没有任何程序员能够一气呵成的写出没有任何 Bug 的代码,所以很多程序员有相当一部分时间是花费在 Debug 上的,程序调试是每个程序员必须面对的工作。
如何使用 Eclipse 进行有效的、尤其是高效地调试代码是一个值得学习的技巧!




