作为编程人员,程序的调试是一项基本功。在不使用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. Permission denied: user=xxj, access=WRITE, inode="user":hadoop:supergroup:rwxr-xr-x

    在windows中运行eclipse时报错Permission denied: user=xxj, access=WRITE, inode="user":hadoop:superg ...

  2. MySQL5.7绿色版安装

    1. 下载MySQL 5.7,地址:http://dev.mysql.com/downloads/mysql/ (选择32位或者64位版本需根据自身PC情况) 2. 下载后解压,比如我的目录结构是: ...

  3. 在java中和javascript中过滤掉类似于img形式的字符串,从而不显示图片

    1:javascript过滤掉<img></img>和<img />形式的字符串 <!DOCTYPE html PUBLIC "-//W3C//DT ...

  4. 转 Encoding is Not Encryption 编码和加密的区别

    昨天跟别人聊天的时候,别人把base64说成了加密. 我并不是扣字眼,但是做为一个IT技术人员我认为分辨加密和编码的区别算是一个常识. It's unfortunate that the words  ...

  5. JS常用校验方法(判断输入框是否为空,数字,电话,邮件,四舍五入等)

    JS常用校验方法: 1.判断输入框是否为空,为空时弹出提示框 2.关闭窗口 3.检查输入字符串是否为数字 4.强制把大写转换成小写 5.手机号码校验,长度为11位数字. 6.电子邮件校验 7.电话号码 ...

  6. 2016"百度之星" - 资格赛(Astar Round1) Problem B

    规律题,斐波那契数列,数据有毒,0的时候输出换行.会爆longlong,写个大数模板或者Java搞. import java.io.BufferedInputStream; import java.m ...

  7. mac 剪切文件

    首先选中文件,按Command+C复制文件:然后按Command+Option+V:就可以把你的文件剪走了!在这里补充一下,我这里讲的是剪切文件夹,不是剪切文本和文字!Command+X只能剪切文字文 ...

  8. 解决IntelliJ IDEA 创建Maven项目速度慢问题 DarchetypeCatalog

    原因 IDEA根据maven archetype的本质,其实是执行mvn archetype:generate命令,该命令执行时,需要指定一个archetype-catalog.xml文件. 该命令的 ...

  9. c语言学习基础:[1]开发工具介绍

    标签:c语言 1 2 3 4 分步阅读 学习编程语言的童鞋们一开始接触到的最多的估计就是C语言了,其次才是什么java.c++等,可以说学习c语言是我们走向编程世界的一座桥梁,学好它,对于我们学习和研 ...

  10. (中等) HDU 4069 Squiggly Sudoku , DLX+精确覆盖。

    Description Today we play a squiggly sudoku, The objective is to fill a 9*9 grid with digits so that ...