本文摘自百度经验

原文地址如下:

玩转 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. 转 C++拷贝构造函数详解

    C++拷贝构造函数详解 一. 什么是拷贝构造函数 首先对于普通类型的对象来说,它们之间的复制是很简单的,例如: int a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一 ...

  2. saltstack 模块学习之 state

     入口文件top.sls 三要素环境:通过file-roots指定目标主机:可以使用通配符*配置文件路径:路径分割符为. 比如a.mysql 表示在环境指定的路径下有个a目录,a目录下有个mysql. ...

  3. centos 7 安装golang1.12.5

    本文主要介绍服务器端环境配置,开发环境是window的话可以参考 https://www.cnblogs.com/nickchou/p/10765743.html 方式一.用yum安装 1.用yum指 ...

  4. 正确地使用GIT FORK

    摘自github官方网站,稍后我将抽空翻译. Fork a repo https://help.github.com/articles/fork-a-repo/ Syncing a fork http ...

  5. [Python Cookbook] Numpy Array Slicing and Indexing

    1-D Array Indexing Use bracket notation [ ] to get the value at a specific index. Remember that inde ...

  6. 通信API、使用Web Workers处理线程

    1.跨文档消息传输                                               要想接受从其他的窗口那里发过来的消息,就必须对窗口对象的message事件进行监视. w ...

  7. java 相关软件使用趋势

     http://www.baeldung.com/java-in-2017  https://mp.weixin.qq.com/s?__biz=MzI4NjYwMjcxOQ==&mid=224 ...

  8. html特殊字符编码问题导致的细节问题

    今天在写前端html时,一个a标签的链接地址,由于链接地址需要给后台传参数,因此带了部分url参数: 在html源码里写的连接地址是: http://域名/bidder/noticesearch?no ...

  9. 【spring boot logback】日志logback格式解析

    日志logback格式解析 logback官网 格式解析 https://logback.qos.ch/manual/layouts.html#ClassicPatternLayout 官网格式解析有 ...

  10. python遍历当前目录并删除某文件

    #coding: utf-8 """ this programe is to clear driverlog below this dir __author__:the_ ...