当前位置:文档之家› Eclipse调试技巧

Eclipse调试技巧

话说调试
•调试就是测试程序的方法
•我们以前用out.printf()方法来查看我们程序中存在的问题。

这种方法也叫调试,但太笨拙了,会累死人的!
•现在我们用eclipse可以帮我们调试,而且再也不用写什么输入语句,来一步一步的测试了。

但我们还是需要一步一步的调试程序啊,那怎么办呢??
断点简介
•程序一旦运行,就像瀑布一样一发不可收拾!我们怎么能控制它呢,李白尚曰:“抽刀断水,水更流”呢??
•别担心,有办法让它停。

•断点闪亮登场!!!!
•断点顾名思义就是能使程序断下的点,我们可以让程序在我们想让其停止的代码行停。

然后,我们可以看看其内部是什么情况,甚至可以修改已经有的属性!而且不用重新运行程序!神奇吧。

如何设置断点??
•很简单!
•方法1.直接在代码行前面双击两下,就会看见出现一个小圆点.,再次双击,断点消失。

•方法2.在代码行的前面右键,选择切换断点。

也会出现一个断点,再次选择切换断点是,断点会消失。

还可以让断点禁用

运行调试,查看断点
•有了断点,我们运行调试
•方法:1.右键类文件,下拉菜单中选择调试方式,选择java应用程序
•方法2. 菜单栏下选择单机小虫图标

演示1
断点操作
•查看断点:
•快捷键的使用:
•F6单步跳过。

•视图里面的选项介绍:
•修改断下的属性值(变量视图)
•可以输入语句查询修改属性,方法(显示视图)
•可以查看所有的断点(断点视图)
•查看表达式,变量的值(表达式视图)•演示2
应用举例
•int result=debug.getSum();
•boolean isBig=false;
•if(result>=50)//如果是这十个数相加大于50则为大,否则为小。

•{ isBig=true; }
•System.out.println("isBig="+isBig);
•getSum();//该方法返回十个整数(ram >=0&& ram <=10)//的和
我们的任务是要让程序总是输出isBig=true!!!!
修改断点
•方法1. 投机取巧
•如果我们直接修改isBig的初始值为true,那么我们不用if判断就直接完事.
•但有缺点,result<50但结果isBig却是true,矛盾了吧!!
演示3
•方法2.偷梁换柱
•如果我们修改getSum的返回值,让其大于50的话,经过if的判断,那么我们的结果肯定是true。

•哈哈,这样的话,没问题了吧。

•错!还有问题,ram的值还是没改变啊,我需要连同ram一起改了才能天衣无缝啊!!
演示4
F5快捷键应用
•那就要用到快捷键(F5)的单步跳入的功能了。

•跳到方法体里面去改!!杀入老窝。

够狠把。

•方法3步步为营
•程序走到int result=debug.getSum();时,我们按下F5,程序就会进入getSum()方法里面了。

我们可以看到里面asm的值了,
看到了小的值就修改吧。

•一路按下F6,见到小于50的就改成大于50的。

这样的一路狂改,isBig想false都难了!不过我们也累的够呛,有没有更好的方法呢,嘿嘿,必须的!!
演示5
条件断点上场
•我们可以让断点智能些,我们可以告诉断点,什么时候自动的停,省的我们一遍一遍的按F6,F5.
•这就是条件断点的作用了。

我们来更好的解决isBig的问题
•方法4,投机取巧(升级智能版)
•告诉断点,当isBig为false时,你就停下,我要作下弊。

如果为true,你就直接放行,别烦我了。

•但是,这种方法和方法1一样,
ram=result<50但结果isBig却是true,两个矛盾哎。

再想想把。

演示6
•方法5 偷梁换柱(升级智能版)
•我们可以下result的条件断点,当result<50是,我们就断下了,作下弊修改reslut,然后结果肯定就是true了。

•矛盾减少了一个,但asm相加还可能小于50啊!!
•看样必须又要杀入老窝了!放心吧,这次我们不会那么费劲了!!
演示7
F8快捷键
•方法6 步步为营(升级智能版)
把asm变量设成断点,只需按一下F8快捷键。

当asm随机生成的数小于50时,自动断下来。

我们修改成成较大的即可!
•这下我们不用一路按F5,F6了,只需要按F8,程序会自动执行,满足条件是才会停下。

省事多了吧.
演示8
JSP页面断点调试演示
•jsp调试跟Java项目调试差不多,
•注意:
•1.断点只能下在有jsp代码的行,html代码不能下断点。

•2.jsp调试时要开服务器,且在eclipse web Browser下调试。

•当你打开的某个jsp页面有断点时,满足断点情况,就会自动断下来。

同样可以执行以前的那些操作!!
演示9
断点的其它应用
•断点的类型还有异常断点
•当程序遇到异常时,会停在异常出现的代
码处。

•自己可以查阅相关资料。

•大学是教你如何学知识的,不是像高中那样,老师教你什么你会什么就可以了,师傅领进门,修行看个人!朋友们,努力吧!
•public class Debug {
•int getSum()//该方法返回十个整数(ram >=0&& ram <=10)的和•{

•int sum=0;
•for(int i=0;i<10;i++)
•{
•int ram=(int) (Math.random()*11);
•sum=sum+ram;
•System.out.print(" ram="+ram);
•}
•return sum;
•}
•public static void main(String[] args) {
•Debug debug=new Debug();
•int result=debug.getSum();

•boolean isBig=false;
•if(result>=50)//如果是这十个数相加大于50则为大,否则为小。

•{isBig=true;}•System.out.println("\n reslut="+result);
•System.out.println("isBig="+isBig);

•}
•}附带程序!!。

相关主题