作为编程人员,程序的调试是一项基本功。在不使用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. VHD容量调整的方法(保存原有vhd)

    VHD容量调整的方法(保存原有vhd)特别对于RAMOS的VHD,调整VHD容量的办法:1.在WIN7或者7PE中,右击我的电脑→管理→磁盘管理,挂载原始VHD文件,然后新建一个VHD文件,初始化,格 ...

  2. thinkphp 5.0 命名空间

    命名空间 命名空间 ThinkPHP5采用命名空间方式定义和自动加载类库文件,有效的解决了多模块和Composer类库之间的命名空间冲突问题,并且实现了更加高效的类库自动加载机制. 如果不清楚命名空间 ...

  3. Fox And Names

    Description Fox Ciel is going to publish a paper on FOCS (Foxes Operated Computer Systems, pronounce ...

  4. 在线生成二叉树(基于EaselJS(canvas))

    学习二叉树的时候,老在本子上画二叉树好麻烦.其实就想看下树结构.最近html5蛮火的,就用canvas和EaselJS.js(开发flash公司开发的插件)插件实现了个.大家随便用吧. 这是个什么东西 ...

  5. Ubuntu Server 重启 Apache Mysql

    a. 重启 apache sudo service apache2 restart b. 重启 MySQL sudo service mysql restart

  6. 如何理解java的引用传递

    1. 数组的引用传递 public class TestArray { public static void changeAry1(int[] ary){ int[] ary1 = {9,9,9}; ...

  7. CDOJ 1273 God Qing's circuital law

    暴力枚举+idea.做的时候mod写错了,写成了1000000009,找了两个多小时才发现...... a[1],a[2],a[3]....a[N] b[1],b[2],b[3]....b[N] 首先 ...

  8. 前端之Sass/Scss实战笔记

    简介 Sass 有两种语法规则(syntaxes),目前新的语法规则(从 Sass 3开始)被称为 “SCSS”( 时髦的css(Sassy CSS)),它是css3语法的的拓展级,就是说每一个语法正 ...

  9. 从url中提取参数名和参数值(转)

    在已知参数名的情况下,获取参数值,使用正则表达式能很容易做到.js的实现方法如下: function getValue(url, name) { var reg = new RegExp('(\\?| ...

  10. CentOS 6.4 x64 Cacti 监控安装配置

    Cacti 监控安装配置   环境:   安装Cacti 的服务器   Linux 6.4 x64   ip 10.8.8.11     一: 配置iptables , selinux     vi ...