II. 选Deselect Working Set后,就可以出现原有的档案
Eclipse中文教程.doc 第 193 頁,共 288 頁
更多电子书教程下载请登陆http://down.zzbaike.com/ebook
本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。
5.除错
我们的说明是采用逻辑错误,藉此追踪下去;范例之后,要谈一些更进阶的除错主题,例如设定除错启动组态,使用Hot Code Replacement,暂停执行中且不会中断的程序(例如无穷回圈)等等。对IDE而言,能够和程序做交互式的除错,是应该具备的功能。
5.1错误的程序
错误的范例程序是要做阶乘(n! = n * (n-1) * (n-2) *... * 1)。此范例会建立多层的堆栈框(stack frame)。
public class ErrorTest {
public static void main(String[] args) { System.out.println(factorial(6)); }
public static int factorial(int value) { if (value == 0) { return value; } else {
return value * factorial(value - 1); } } }
此例中,是求factorial(n),这个方法会递归的呼叫自己,直到
Eclipse中文教程.doc
第 194 頁,共 288 頁
更多电子书教程下载请登陆http://down.zzbaike.com/ebook
本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。
此阶乘被算尽为止。此例是要找出6的阶乘,也就是720,可惜第一次执行此例的结果是0。
图5.1
5.2设定岔断点(Breakpoints)
由于没有抛出任何的例外事件,所以问题是在程序的逻辑。要在程序执行期间检视程序,所以要设定岔断点(Breakpoints)来暂停程序。在要暂停的程序代码前面的「Marker Bar」点两下(或是「Run」→「Toggle Line Breakpoint」)来设定岔断点,稍后要移除岔断点,只要再对该岔断点按两下即可。
要安插一个岔断点到return value * factorial(value - 1)的旁边,这样才能观看连续呼叫factorial()方法而建立的阶乘值。在「Marker Bar」上有一个蓝点。
Eclipse中文教程.doc
第 195 頁,共 288 頁
更多电子书教程下载请登陆http://down.zzbaike.com/ebook
本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。
开始除错,「Run」→「Debug As」→「Java Application」(或是按
旁边的箭头选「Debug As」→「Java Application」),还开
启「Debug」视景。
图5.2
程序执行到岔断点会暂停,执行暂停处的该列程序会出现在「Debug」编辑器中,标上一个箭头。
先了解「Debug」视景。在左上角的「Debug」视图中可以看见正在除错的程序构成项目。这里的堆栈框都有标上三条横棒。此例中,我们正在factorial()方法中,已经由mail()方法所呼叫了。「Debug」视图中由左到右的按钮分别是, Resume按钮(在开始执行程序)、 Suspend按钮(暂停程序)、 Terminate按钮(中止除错)、
Disconnet按钮、 Remove All Terminated Launches按钮(除去先
Eclipse中文教程.doc
第 196 頁,共 288 頁
更多电子书教程下载请登陆http://down.zzbaike.com/ebook
本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。
前debug session)。
「Debug」视图右边是层迭的视图。分别是「Variables」、「Breakpoints」和「Expressions」。
图5.3
「Variables」视图可以检视区域变量之值。在除错程序时,可以编修区域变量之值(稍后会做),这样可以和程序互动以修正问题。Eclipse会监视这些变量值,当这些变量值有变时,会改变颜色(改成红色)。「Variables」视图底端的部分称为详细资料窗格(Detail Pane),会显示更完整的信息。
「Breakpoints」视图管理程序中的岔断点,对清单中的某各岔断点按右键,在从选单中选择「Enable」、「Disable」、「Remove」或「Remove All」。
Eclipse中文教程.doc 第 197 頁,共 288 頁
更多电子书教程下载请登陆http://down.zzbaike.com/ebook
本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。