本文摘自百度经验

原文地址如下:

玩转 eclipse:[1]如何快速找错-debu

eclipse是软件开发人员必备的IDE之一.

由于语言障碍或者是经验不足,许多刚刚新手并不清楚如何高效使用eclipse. 甚至使用eclipse很久的朋友也对eclipse的功能不甚了解.

为此我总结了eclipse常用的技巧,希望通过一系列的总结让eclipse真正成为开发朋友们的利器!

程序错误通常有2种,一种是运行时错误,这种错误ide会抛出异常,我们可以根据异常寻找问题. 

另外一种就不那么容易了, 这种错误是逻辑性的. 程序不报错,但是结果往往不是我们期待的. 对于这种错误,debug是个好主意.

本节采取示例的方式来教会大家使用debug.

下面进入正文:

错误的范例程序是要做阶乘(n! = n * (n-1) * (n-2) *... * 1) 初次运行结果如下:

 设定岔断点(Breakpoints) 

断点就是你希望程序运行到哪暂停,断点往往就是你觉得程序可能出错的地方. 

设定断点的办法很简单,在你认为出错的那一行的行号前面双击即可.如图:

运行debug

「Run」→「Debug As」→「Java Application」(或是按 旁边的箭头选「Debug As」→「Java Application」),还开启「Debug」视景。 开启后debug视图会有点让你不适应. 关于debug的视图介绍,请参看我的另外一篇介绍----

怎样使用eclipse系列教程(1-配置自己的视图布局)

进入调试模式

使用调试---查看自定义表达式的值

在本例中,我们想实时查看一下当前表达式value * factorial(value - 1)到底是多少,可以如下图这样去做!

让程序一步一步慢慢运行!

step into(步入) 快捷键是 F5

step over(步过) 快捷键是 F6

step return (返回)  快捷键是 F7

继续执行 

我们已经做过程序逐步除错,还可以继续做下去,但是每次呼叫 factorial(),每一列程序代码都得跑一遍,实在有点烦。

可以改成让程序一直跑,直到碰到岔断点。要这样做只要按「Debug」视图中   Resume按钮。

在这样做之前,也可以设定去监看我们想要监视的变量。在编辑器中对该变量按右键,选 Watch 的选项,把该变量加到「Expressions」视图中。

现在点 Resume 按钮,程序会继续执行,直到碰到下一个岔断点,看一下 value 的值为 3 之后,会发现扔然在同一个 factorial()之内,只要重复不断按 Resume 按钮,可以看出 value 值的变化。

设定岔断点的 Hit Count 

如果从程序开始启动计算,这个 factorial()方法要跑 6 次,所以需要按 6 次 Resume 按钮;也可以设定 Hit Count 来节省时间

分析问题出现的原因!

修改测试,完成debug!

玩转 eclipse:[1]如何快速找错-debug的更多相关文章

  1. m_Orchestrate learning system---十五、如何快速查错

    m_Orchestrate learning system---十五.如何快速查错 一.总结 一句话总结: a.删除代码法 b.添加提示代码法 c.仔细看错误信息 1.评论板块和论坛板块的实时更新? ...

  2. 解决eclipse配置Tomcat时找不到server选项(Mac通用)

    集成Eclipse和Tomcat时找不到server选项: 按照网上的步骤如下: 在Eclipse中,窗口(window)——首选项(preferences)——服务器(Server)——运行时环境( ...

  3. 【转】Eclipse下启动tomcat报错:/bin/bootstrap.jar which is referenced by the classpath, does not exist.

    转载地址:http://blog.csdn.net/jnqqls/article/details/8946964 1.错误: 在Eclipse下启动tomcat的时候,报错为:Eclipse下启动to ...

  4. 锋利的js之妈妈再也不用担心我找错钱了

    用js实现收银功能. <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <hea ...

  5. 解决eclipse配置Tomcat时找不到server选项

    集成Eclipse和Tomcat时找不到server选项: 按照网上的步骤如下: 在Eclipse中,窗口(window)——首选项(preferences)——服务器(Server)——运行时环境( ...

  6. eclipse运行hadoop程序报错:Connection refused: no further information

    eclipse运行hadoop程序报错:Connection refused: no further information log4j:WARN No appenders could be foun ...

  7. eclipse连接远程Hadoop报错,Caused by: java.io.IOException: 远程主机强迫关闭了一个现有的连接。

    eclipse连接远程Hadoop报错,Caused by: java.io.IOException: 远程主机强迫关闭了一个现有的连接.全部报错信息如下: Exception in thread & ...

  8. windows下Eclipse操作MapReduce例子报错:Failed to set permissions of path: \tmp\hadoop-Jerome\mapred\staging\

    windows下Eclipse操作MapReduce例子报错: 14/05/18 22:05:29 WARN util.NativeCodeLoader: Unable to load native- ...

  9. eclipse 中新建文件报错The superclass "javax.servlet.http.HttpServlet" was not found on the Java Buil

    在eclipse中新建文件报错错误提示如下: The superclass "javax.servlet.http.HttpServlet" was not found on th ...

随机推荐

  1. PE笔记之NT头PE签名

    typedef struct _IMAGE_NT_HEADERS {       DWORD Signature;                     //PE头签名PE\0\0       IM ...

  2. hdu 1385(Floyed+打印路径好题)

    Minimum Transport Cost Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/O ...

  3. 已知一个序列A1.A2….An,给你一个整数K,找到满足所有Ai+Aj>=k的数对(i,j)的个数

    #include<bits/stdc++.h> using namespace std; #define ll long long #define maxn 100010 /* 已知一个序 ...

  4. CSS定位与布局:浮动

    浮动的特点   浮动(float)属性提出的作用是实现文字的环绕效果,一个元素浮动后,会脱离普通流.主要的特点如下: 浮动的元素会向左或者向右移动直到它的外边缘接触容器框(containing blo ...

  5. spring 自定义解析类

    设计配置属性和JavaBean 编写XSD文件 编写NamespaceHandler和BeanDefinitionParser完成解析工作 编写spring.handlers和spring.schem ...

  6. Tiny4412 学习

    平台: Tiny4412ADK + S700 + 4GB FlashU-boot: 友善之臂提供的开源U-boot Linux: linux-3.0.31 Android: android_4_1_2 ...

  7. Oracle Forms Project For Students Free Download

    After getting to much requests for a free Oracle Forms and Reports project for students, I am sharin ...

  8. 【好】Paxos以及分布式一致性的学习

    Paxos,一言以蔽之,我们需要一种提交协议来确保分布式系统中的全局操作即使是在发生故障的情况下也能保证正确性. 跟拜占庭将军问题是不同的问题,虽然拜占庭也是Lamport提出的.拜占庭里面有叛徒,有 ...

  9. 九度oj题目&amp;吉大考研10年机试题全解

    吉大考研机试2010年题目 题目一(jobdu1478:三角形的边).    http://ac.jobdu.com/problem.php?pid=1478 给出三个正整数,计算最小的数加上次小的数 ...

  10. 测试整合之王Unitils

    16.4.1  Unitils概述(1) Unitils测试框架目的是让单元测试变得更加容易和可维护.Unitils构建在DbUnit与EasyMock项目之上并与JUnit和TestNG相结合.支持 ...