玩转 eclipse:[1]如何快速找错-debug
1、错误的范例程序是要做阶乘(n! = n * (n-1) * (n-2) *... * 1) 初次运行结果如下:
![玩转 eclipse:[1]如何快速找错-debug](https://exp-picture.cdn.bcebos.com/3fc72e486143d7d4d15c2f587da75f0f832b50c0.jpg)
2、设定岔断点(Breakpoints)断点就是你希望程序运行到哪暂停,断点往往就是你觉得程序可能出错的地方.设定断点的办法很简单,在你认为出错的那一行的行号前面双击即可.如图:
![玩转 eclipse:[1]如何快速找错-debug](https://exp-picture.cdn.bcebos.com/f7e6410f822b74ee835f60abda2c8cf1d9a74ac0.jpg)
3、运行debug「Run」→「Debug As」→「Java Application」(或是按 旁边的箭头选「Debug As」→「Java Application」),还开启「Debug娠熨诫轳」视景。 开启后debug视图会有点让你不适应. 关于debug的视图介绍,请参看我的另外一篇介绍----怎样使用eclipse系列教程(1-配置自己的视图布局
4、进入调试模式
![玩转 eclipse:[1]如何快速找错-debug](https://exp-picture.cdn.bcebos.com/d9e638334884cde3ec417d5df07f860e7d7542c0.jpg)
![玩转 eclipse:[1]如何快速找错-debug](https://exp-picture.cdn.bcebos.com/ef4c24ceaad7726bbe8f4e54bf0f64781523b9c0.jpg)
5、使用调试---查看自定义表达式的值在本例中,我们想实时查看一下当前表达式value * factorial(value - 1)到底是多少,可以如下图这样去做!
![玩转 eclipse:[1]如何快速找错-debug](https://exp-picture.cdn.bcebos.com/2083a5d6e1d06de8270cad96ca93cee8b104acc0.jpg)
![玩转 eclipse:[1]如何快速找错-debug](https://exp-picture.cdn.bcebos.com/b1454a1bd10ff226c8f71abd9c99e92abbb8a4c0.jpg)
6、让程序一步一步慢慢运行!step into(步入) 快捷键是 F5step over(步过) 快捷键是 F6step return (返回) 快捷键是 F7
![玩转 eclipse:[1]如何快速找错-debug](https://exp-picture.cdn.bcebos.com/bbf95c406afec3143ca8be5dcac1b727ad539cc0.jpg)
![玩转 eclipse:[1]如何快速找错-debug](https://exp-picture.cdn.bcebos.com/07c98f2ca5cadce846252b4ffcf7980e5e2095c0.jpg)
![玩转 eclipse:[1]如何快速找错-debug](https://exp-picture.cdn.bcebos.com/5e615d715fdb36206757e63aabc5260f89358dc0.jpg)
![玩转 eclipse:[1]如何快速找错-debug](https://exp-picture.cdn.bcebos.com/2184380f8835dd8abdb36eb403013870d44187c0.jpg)
7、继续执行我们已经做过程序逐步除错,还可以继续做下去,但是每次呼叫 factorial(),每一列程序沪枭诽纾代码都得跑一遍,实在有点烦。可以改成让程序一直跑,直到碰到岔断点。要这样做只要按「Debug」视图中 Resume按钮。在这样做之前,也可以设定去监看我们想要监视的变量。在编辑器中对该变量按右键,选 Watch 的选项,把该变量加到「Expressions」视图中。现在点 Resume 按钮,程序会继续执行,直到碰到下一个岔断点,看一下 value 的值为 3 之后,会发现扔然在同一个 factorial()之内,只要重复不断按 Resume 按钮,可以看出 value 值的变化。
![玩转 eclipse:[1]如何快速找错-debug](https://exp-picture.cdn.bcebos.com/d400248ca608a50f78917b3f10cec7f88b77ffc0.jpg)
8、设定岔断点的 Hit Count如果从程序开始启动计算,这个 factorial()方法要跑 6 次,所以需要按 6 次 Resume 按钮;也可以设定 Hit Count 来节省时间
![玩转 eclipse:[1]如何快速找错-debug](https://exp-picture.cdn.bcebos.com/c6b994775ddd884c162704946cef28066a01f6c0.jpg)
![玩转 eclipse:[1]如何快速找错-debug](https://exp-picture.cdn.bcebos.com/2947750192dd33404c9eba34881c99c0aefcf1c0.jpg)
![玩转 eclipse:[1]如何快速找错-debug](https://exp-picture.cdn.bcebos.com/025d87c0affce186244183c11f1fbee435daebc0.jpg)
![玩转 eclipse:[1]如何快速找错-debug](https://exp-picture.cdn.bcebos.com/f11f54237971fe1d9fb633aaea20a7cd0d6ee0c0.jpg)
9、分析问题出现的原因!
![玩转 eclipse:[1]如何快速找错-debug](https://exp-picture.cdn.bcebos.com/03f26bd7997bbbf4c93659695549610f8a56d6c0.jpg)
![玩转 eclipse:[1]如何快速找错-debug](https://exp-picture.cdn.bcebos.com/8a17b3042e6817e94a8f254bd356d53da924cec0.jpg)
![玩转 eclipse:[1]如何快速找错-debug](https://exp-picture.cdn.bcebos.com/d9a8d2d2bb665159a12e3b998fe23ea23b42c7c0.jpg)
10、修改测试,完成debug!
![玩转 eclipse:[1]如何快速找错-debug](https://exp-picture.cdn.bcebos.com/84010e2a04e23ea2122c8bc92b10bc33ed38c3c0.jpg)
![玩转 eclipse:[1]如何快速找错-debug](https://exp-picture.cdn.bcebos.com/a31e1214c27bd282b5e78af53cb1eef97ebd36c1.jpg)