首页 > 代码库 > 【Java】如何使用Eclipse中的调试器

【Java】如何使用Eclipse中的调试器

只要有一点编程基础的人都程序出错或者得不到我们想要的结果的时候,我们要进行调试,但是不知道有多少人还是与我一样,喜好在某些地方用System.out.println();去打印某些变量来进行观测,C语言则喜欢用printf,C++则是cout,这种方法用多了,永远不知道调试器到底怎么使用了。其实,Eclipse中的调试器很简单,非常容易使用。而且,对于打印某些变量的方法,在一些大型的程序,图形编程界面、WEB编程,你就开始懵了。程序为何出错还没想出来,又要开始想怎么打印变量。简直烦死了。技术分享

为了讲解如何用Eclipse中调试器去调试程序,故意设计这样的一个很简单的错误程序:

class Debug {
	public void ArrayIndexOutOfBoundsException() {
		int[] TestArr = new int[10];
		for (int i = 0; i < TestArr.length; i++) {
			TestArr[i] = i;
		}
		for (int i = 0; i < TestArr.length + 1; i++) {
			System.out.print(TestArr[i] + ",");
		}
	}
}

public class JavaDebugTest {
	public static void main(String args[]) {
		new Debug().ArrayIndexOutOfBoundsException();
	}
}

这段代码没有任何的语法错误,但是运行起来却是这样结果:

技术分享

几乎所有人都知道,这是数组越界错误,我再打印的时候,本来只有10个单位的数组,却要读取其第11位的东西,这是明显会发生错误的。

但是,实际在我们编程的时候,要解决的程序不像这里这么简单,而且如果出错,还会一次性地吐出大量无关的异常,让人很难找到出错的原因。

而且,这个问题如果要你用打印变量的方法去检测错误,估计你搞半天还没搞出来。

此时,我们就要借助Eclipse中的调试器。

关键是怎么用呢?总是见高手在啪啪啪就发现错误的原因,但自己却只有羡慕……

首先,在运行结果找到可能出错的地方,不是自己写的Java文件、Java包就不要管了,你引入那些jar包都是人家写好的,怎么可能出错,即使是出错,都是你写的程序搞到人家的jar报错:

技术分享

然后,如图点击调试来运行这个程序:

技术分享

之后进入到如下界面,也就是Eclipse中的调试器,我们必须要会用、会看,利用这个调试器改出我们自己想要的程序!

当你使用调试运行的时候,你的程序会迅速执行到你设置的第一个断点,之后,如下图,请利用好F6与F7/F8,配合右上方的内存变量查看器,好好思考你写不好程序的原因

技术分享

你每点一下F6,内存变量查看器里面变化了的变量会高亮显示:

技术分享

调试的过程中,也请注意一下下方控制台的输出,对于循环体,请注意你是在第几次循环中出错的,而对于条件体,请注意判断条件,也就是if里面的东西,与当前内存里面的变量是否吻合等等各类的编程技巧、调试技巧,这里就不用说了,估计还有比我更NB的大神。

在调试的过程中,你可以直接在代码面板那里改代码。或者等整个程序调试完毕了,按右上角的Java切回原来写代码的界面修改:

技术分享


【Java】如何使用Eclipse中的调试器