eclipse调试技巧

我将借着下面的例子在eclipse中对其进行调试。代码简单就不加注释了。

package debugtest;

public class Example {
	public static void main(String[] args) {
		int[] m = new int[10];
		for (int i = 0; i < 4; i++) {
			m[i] = i;
		}
		int k = 5;
		for (int i = 9; i >=4; i--) {
			m[i] = i-k;
			k = k-2;
		}
		prin(m);
		System.out.print("max为:");
		int a = max(m);
		System.out.println(a);
		
	}
	public static int max(int[] m) {
		int ma = m[0];
		for (int i = 0; i < 10; i++) {
			if(ma<m[i]) {
				ma = m[i];
			}
		}
		return ma;
	}
	public static void prin(int[] m) {
		for (int i = 0; i < m.length; i++) {
			System.out.println("m["+i+"]="+m[i]);
		}
	}
}

简单Debug调试。

第一步,打断点。在你需要程序暂停运行的地方左键双击就可以。如下,我在代码第五行的位置打了个断点,断点也可以在不止一处地方打。

 第二步,Debug运行(右击程序后选择Debug As运行),会发现程序停在了打的断点处,选择Debug视图,方便观察变量变化情况(图右侧),如下图。

第三步,快捷键或者鼠标点击工具栏进行程序调试。

F5 单步执行,若是函数,会进入方法,包括自定义方法和jdk源码的方法。

当程序执行到这里时,若直接F6,则不会进入max(m)函数,F5则会进入其中。

 

且注意看变量,原先main函数中的局部变量已经变成max函数中的局部变量了。

F6 单步执行,遇到方法不会进入,仅当一条语句执行。

调试的时候注意看变量的变化,例子简单很容易理解,但若遇到逻辑问题很难发现时,代码调试的好处就体现出来了。 

F7 跳出当前正在debug调试的方法,main函数无法跳出。

        进入max函数后点击F7,跳出max函数返回main函数中。

F8 执行到下一个断点,若没有断点程序执行完毕。

 

这里我打了两个断点,第5、14行,如果单步执行,需要经过两个for循环,这是直接F8则直接从第五行断点到第14行断点。

 

条件断点。

先掌握了以上那些调试方法后,想一下,如果有一个循环10000次的for循环,你该如果去调试,或者说我想看看它循环五千次后变量的数据什么样,这个时候上面那些方法就不够用了。此时就需要用到条件断点,顾名思义,满足条件的时候断点才生效。如下,我想看一下i=6时,程序停,这个时候,首先也是左键双击断点后生成正常的断点。然后右击断点后选择最下面的breakpoint properties..会出现如下窗口,选中Conditional就可以添加条件了。再应用并关闭窗口,条件断点就生成成功了。

如下所示,程序到i == 6时暂停。

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值