作为编程人员,程序的调试是一项基本功。在不使用IDE的时候,程序的调试多数是通过日志或者输入语句(System.out.println)的方式。可以把程序运行的轨迹或者程序运行过程中的状态显示给用户,用户据此对程序进行分析调试。实际上这样的调试并不是非常方便。
在多数IDE中都提供了debug功能,可以让用户单步执行程序,在执行的过程中来查看程序中的各变量的状态。并且在程序运行过程中还可以调整状态的值。
下面以Eclipse为例介绍如何使用debug调试程序。
注意:要使用Eclipse提供的debug功能,必须在Eclipse环境中启动服务器(对Web应用)或者运行程序(对Application应用)。
调试的主要涉及如下几个方面:
l         设置断点;
l         单步跟踪;
l         查看变量或者对象的状态;
l         动态修改变量的状态;
l         终止运行;
l         视图切换;
l         删除断点。
下面分别进行介绍。
10.5.1 设置断点
设置断点的目的是让程序运行到这个语句的时候停在这个地方。一般情况下,当你怀疑某个地方可能发生错误的时候,可以在这个地方之前增加断点,通常断点添加在可执行代码上,而不是变量的声明语句上。
要添加断点,在代码行的左侧空白处双击即可。
10.5.2 单步跟踪
设置断点之后运行程序,程序运行到断点时会停留在断点所在行。然后可以单步执行。
注意:光标停留在某一行上的时候表示准备执行这一行。
要单步调试,使用F6。执行下一行。
如果当前行是方法调用并且希望进入到方法中查看执行过程,可以使用F5。
如果想转向上一级方法,也就是跳出当前方法,可以使用F7。
如果想直接运行到下一个断点,使用F8,或者绿色的箭头。如果没有后续断点,程序直接运行到结束的地方。
10.5.3查看变量或者对象的状态
单步执行的主要目的是查看在执行过程中的变量或者对象的状态。
在单步执行的过程中,可以随时查看变量的状态。可以有两种方式查看变量的状态:
l         把鼠标放在要查看的变量的上面(必须是已经执行到的代码),会显示变量的值;
l         通常variable窗口,如果这个窗口没有显示出来,可以通过【Window】à【Show View】à【Variable】,这样会出现一个窗口,窗口中显示所有当前运行过程相关的变量,可以通过这个窗口查看变量的状态。
10.5.4 改变变量的值
在运行程序的过程中在动态调整变量的值。调整的方法如下:
l         在Virables窗口中选择要修改的变量;
l         点击右健,选择Change Value,会弹出窗口;
l         在窗口中输入修改后的值,确定即可。
然后可以继续执行程序。后续执行过程就会使用修改后的变量的值。
另外在程序执行的过程中可以随时修改程序,修改程序之后会继续执行。
10.5.5 终止程序运行
如果在调试过程中已经发现错误,或者不希望程序继续向下执行,可以终止程序。
要终止程序,可以使用红色的方按钮。
注意:这样的错误,会把当时运行的服务器停掉。
10.5.6 切换视图
debug开始之后,会打开debug窗口。随时可以切换到开发视图。
要切换到其他视图,选择【Window】à【Open Perspective】,然后从列表中选择,如果在列表中看不到相应的视图,可以选择【Others】,然后从中选择相应的视图。
10.5.7 删除断点
在调试结束之后,需要删除断点。
要删除断点可以有如下方式:
l         在添加断点的地方双击,如果双击的地方有断点,可以取消断点,如果没有断点,可以添加断点。
l         在调试视图中的BreakPoints窗口中选择某个断点,然后点击右健,在弹出式菜单中选择【删除】,或者直接点击右健,选择【Remove All BreakPoints】。
l         在主菜单中的【run】子菜单中,选择【Remove All BreakPoints】。
 

关于调试的更多内容,参考教材:  《Java Web程序设计基础教程》第15章 程序调试

Eclipse中应用的调试的更多相关文章

  1. 如何在Eclipse中开发并调试自己的插件(或者说如何将自己的代码插件化)

    Setting up Eclipse to create and debug plugins for ImageJ 最近在做一个关于卫星遥感全链路仿真的项目,由于项目是基于ImageJ开发,而Imag ...

  2. Nodejs学习笔记(二)——Eclipse中运行调试Nodejs

    前篇<Nodejs学习笔记(一)——初识Nodejs>主要介绍了在搭建node环境过程中遇到的小问题以及搭建Eclipse开发Node环境的前提步骤.本篇主要介绍如何在Eclipse中运行 ...

  3. Eclipse中调试Android技巧

    Android eclipse中程序调试 一:断点调试 用eclipse开发android程序的时,跟VS一样是可以断点单步调试的. 步骤如下. 1 设置断点:在编码窗体的左边框上用鼠标双击,或者右键 ...

  4. 在Eclipse中进行HotSpot的源码调试--转

    原文地址:http://www.linuxidc.com/Linux/2015-05/117250.htm 在阅读OpenJDK源码的过程中,经常需要运行.调试程序来帮助理解.我们现在已经可以编译出一 ...

  5. java系列: 在eclipse中调试时,输入的jsp或者servlet页面的地址要区分大小写

    比如在当前web工程中有一个jsp页面的名字是: Welcome.jsp 在eclipse中调试时,如果在浏览器中输入: http://localhost:8080/MavenWeb/welcome. ...

  6. Java基础(57):Eclipse中环境配置(视图字体颜色行号调试快捷键等等)

    1:Eclipse的基本配置 A:程序的编译和运行的环境配置(一般不改) window -- Preferences -- Java 编译环境:Compiler 默认选中的就是最高版本. 运行环境:I ...

  7. [安卓][转]Android eclipse中程序调试

    一:断点调试 用eclipse开发android程序的时,跟VS一样是可以断点单步调试的.步骤如下.1 设置断点:在编码窗体的左边框上用鼠标双击,或者右键点击菜单,选择 Toggle Breakpoi ...

  8. Android eclipse中程序调试

    一:断点调试 用eclipse开发android程序的时,跟VS一样是可以断点单步调试的.步骤如下.1 设置断点:在编码窗体的左边框上用鼠标双击,或者右键点击菜单,选择 Toggle Breakpoi ...

  9. 在eclipse中使用jetty插件替代m2e开发调试maven web项目

    第一步在相应的web项目上配置jetty插件,配置如下: <plugin> <groupId>org.mortbay.jetty</groupId> <art ...

随机推荐

  1. (转)多个MapReduce作业相互依赖时,使用JobControl进行管理

    原文地址:http://mntms.iteye.com/blog/2086990 要处理复杂关系的数据,一个工程里面绝对不止一个MapReduce作业,当有多个MapReduce作业时,       ...

  2. CG之refract函数简单实现

    CG的refract函数定义如下: refract(I, N, eta) 根据入射光线方向I,表面法向量N和折射相对系数eta,计算折射向量.如果对给定的eta,I和N之间的角度太大,返回(0,0,0 ...

  3. RMQ问题再临

    RMQ问题再临 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 终于,小Hi和小Ho踏上了回国的旅程.在飞机上,望着采购来的特产——小Hi陷入了沉思:还记得在上上周他们去 ...

  4. IOS之按钮控件--Button全解析及使用 分类: ios技术 2015-01-17 17:09 169人阅读 评论(0) 收藏

    IOS开发中伴随我们始终的 最常用的几个空间之一 -- UIButton 按钮,对于button今天在此做一些浅析,并介绍下主流用法以及常见问题解决办法. 首先是继承问题,UIButton继承于UIC ...

  5. FMDB 查询是否存在某个表,或某个数据

    //监测数据库中我要需要的表是否已经存在 NSString *existsSql = [NSString stringWithFormat:@"select count(name) as c ...

  6. AD设计过程中的注意事项

    1.编译报错:off sheet at....是纸张太小的原因,选择大一点的纸张报错就会消失.

  7. dedecms如何修改共0页/0条记录为英文版?

    近日,在测试一个网站功能的时候,发现在搜索结果的下面为中文的“共0页/0条记录”,但客户的网站为英文版,所以我们需要将搜索的结果信息也要显示为英文,好了,我们开始动手修改dedecms的文件,以达到我 ...

  8. Clustering text documents using k-means

    源代码的链接为http://scikit-learn.org/stable/auto_examples/text/document_clustering.html Loading 20 newsgro ...

  9. 变量-数据类型-对象-如何编写python脚本

    标识符的命名规则变量是标识符的例子. 标识符 是用来标识 某样东西 的名字.在命名标识符的时候,你要遵循这些规则:标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘ _ ’).标识 ...

  10. java类集: collection, list , set, map

    都在java.util包里.容器:装各种对象. Collections类 : 集合工具类, 提供了一些静态方法, 方法里的参数是List等. Colection接口,子接口主要有:   Set: 内容 ...