在程序出现问题时,我们需要找到并解决掉这些恼人的Bug,才能使程序顺利的运行下去。但是,当代码很多,程序很大的时候,找起来就很麻烦。

所以,我们需要借助工具——Eclipse/MyEclipse中的Debug(调试)手段。而调试的时候,需要入口和观测点,所以我们需要设置断点来进行调试。

  1 设置断点的方法:

     在想要加上断点的行的边侧栏双击/右键后点击Toggle Breakpoint即可。

    2 启动调试模式

      设置好断点后,在项目中右键 —— Debug As —— Java Application即可

           或点击如图所示处:

              

  2 断点的设置位置:

        a) 属性断点: 在成员变量的所在行设置的断点

        (第4行的边侧栏上的标志)

         b) 方法断点: 在方法的执行处或定义处设置的断点(一般推荐在执行处设置)

                (17行边侧栏的标志)

          c) 条件断点: 满足某条件后即停止运行程序

                设置方法:  在断点所在行点击右键 Breakpoint Properties(断点属性) —— 如图

            

                 注: 

                      1 书写条件断点的条件时,不要有分号。 sum > 8(正确) sum>8;(错误)

                      2 设置断点时要牢记一个原则: 哪行设置了断点,哪行在调试时就将要被执行。

                      所以要正确设置位置,以免出现未初始化的错误。

                      比如:

                            public void print() {
                *    int sum = 0;//在此行设置了断点
                    for (int i = 0; i < 10; i++) {
                      sum += i;
                    }
                  System.out.println(sum);
               }

                      而我设置条件断点时如下书写: sum > 5。断点设置在定义sum的一行,说明调试的时候sum是未被定义的,而断点属性设置为             sum>5—— sum都未被定义怎么可以赋值呢?所以错误。

                       3 如果想要修改代码/设置条件断点/Breakpoint Properties中的属性值,一定要先停止Debug,再设置,然后重新开始Debug

                          这样才能生效。

                       4 Breakpoint Properties中几个属性的介绍

                         在断点处右键 —— Breakpoint Properties 会进入如图的界面:

             

  3 修改变量的值

    什么时候用? 比如如果程序中某一个变量的值有问题,我们在调试时需要修改一下才能使程序运行下去。

        (点击changeValue后弹出对话框)

  4 几个需要掌握的用于调试的按钮
        a: resume 英 [ri'zju:m] (重新开始) 点击后直接执行下一个断点,如果在循环中,执行下一次循环。
        b: step into  一步一步执行
        c: step over  一行一行执行,子函数也被看做是一步(main()里面调用print()使用step over一次就跳过了)
        d: drop to frame 。
            主要用途是
                所有变量状态快速恢复到方法开始时候的样子重新执行一遍,即可以一遍又一遍地在那个你关注的
                上下文中进行多次调试(结合改变变量值等其它功能),而不用重来一遍调试到哪里了。当然,
                原来执行过程中产生的副作用是不可逆的(比如你往数据库中插入了一条记录)。
            
            使用方式:
                这种调试的回退不是万能的,只能在当前线程的栈帧中回退,也就说最多只能退回到当前线程的
                调用的开始处。回退时,请在需要回退的线程方法上点右键,选择  "Drop to Frame"

   5 异常断点 —— 帮助我们确定异常位置。
        位置:  调试界面右上角,Breakpoints一栏中——add Java Excption BreakPoint
        
        经常遇见一些异常,然后程序就退出来了,要找到异常发生的地方就比较难了,还好可以打一个异常断点,
        这样一来,当异常发生时,代码会停在异常发生处,
        定位问题时应该比较有帮助。
        
        如何使用?
            1 在控制台的出错信息中找到异常的名称
            2 复制后打开debug界面,添加同名的异常断点
            3 (如果只是为了找出异常出现的位置,不需要加断点)直接开始调试,程序就会停在异常出现的地方。
        
    6 Expressions(非常灵活!强推!)

        位置: 调试界面右上角Expressions一栏
        通过添加表达式 Expressions 来查看各变量的值。
        的(Add a new watch expression)符号。
        
        书写代表某值的表达式: 如:sum, sum*3; getSum(); 等等
        点击OK 可以查看结果如下:(查看结果相当方便吧,个人感觉比变量窗口更有用!)
        
        比Varibles强大之处在于:
            1 查看值的方式更加灵活,根据表达式可以查看任意的值。比如: 变量,变量表达式,方法的返回值
            方法的返回值的表达式等等。sum, sum*3; getSum(); printRestule() 等等         

              

   参考资料包括:

黑马程序员许刚老师视频  

       2 http://eggbucket.iteye.com/blog/1381610(MyEclipse调试技术)                  

细说MyEclipse调试的更多相关文章

  1. windows + myeclipse 调试 linux + tomcat 的java web服务 配置方式

    一.linux tomcat配置和启动 1.catalina.sh第一行加入 declare -x CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt ...

  2. myEclipse如何将程序部署到tomcat(附录MyEclipse调试快捷键)

    部署 1.选中你要部署的项目,在工具栏找到 Deploy MyEclipse J2EE Project to Server 2.单击Add,即出现如下界面.选择相应的Server,要和你在配置tomc ...

  3. myEclipse怎样将程序部署到tomcat(附录MyEclipse调试快捷键)

    部署 1.选中你要部署的项目,在工具栏找到 Deploy MyEclipse J2EE Project to Server 2.单击Add,即出现例如以下界面.选择对应的Server,要和你在配置to ...

  4. Myeclipse调试模式下自动提示变量值设置

    1.Window->Preferences->Java->Editor->Hovers 将[Variable Values]选择即可,如果第一个[Combined Hover] ...

  5. myeclipse 调试JSP页面

    http://jingyan.baidu.com/article/636f38bb1ef1aad6b9461048.html

  6. myeclipse下对tomcat项目进行debug断点调试

    对于eclipse或myeclipse调试J2SE项目或小应用进行断点调试,大家都不陌生,只要设置断点,debug运行就OK了.但是如果是web项目,而项目是在容器中运行的,比如tomcat,resi ...

  7. MyEclipse 2015 CI 14发布(附下载)

    支持Web和Node.jsd的JavaScript Debugger调试器,新版本功能更加强大,在MyEclipse调试web应用程序变得更方便.调试器支持断点.变量和表达式. 类的动态预加载用Hot ...

  8. jmeter测试本地myeclips调试状态下的tomcat程序死锁

    在myeclipse调试状态下的tomcat程序,用jmeter测试,居然发生死锁,调试两天无果,直接运行tomcat而不通过myeclipse,无死锁,真是又好气又好笑..

  9. strut2读源码记录

    首先你得准备一个很简单的struts2的程序,可以发一次请求后能返回一个正确的响应,当然,struts2的源码也要有,我这里用的myeclipse调试的,本来是想用eclipse,因为本人习惯于用ec ...

随机推荐

  1. constructor 属性,判断是否为数组

    <!--你可以使用 constructor 属性来查看是对象是否为数组 (包含字符串 "Array"):--><p>constructor属性返回变量或对象 ...

  2. C++反汇编第五讲,认识多重继承,菱形继承的内存结构,以及反汇编中的表现形式.

    C++反汇编第五讲,认识多重继承,菱形继承的内存结构,以及反汇编中的表现形式. 目录: 1.多重继承在内存中的表现形式 多重继承在汇编中的表现形式 2.菱形继承 普通的菱形继承 虚继承 汇编中的表现形 ...

  3. MySQL slave_exec_mode 参数说明

    背景: 今天无意当中看到参数slave_exec_mode,从手册里的说明看出该参数和MySQL复制相关,是可以动态修改的变量,默认是STRICT模式(严格模式),可选值有IDEMPOTENT模式(幂 ...

  4. 【luogu P1613】跑路

    https://www.luogu.org/problem/show?pid=1613 看到2k就能想到倍增.用一个数组avai[i][j][k]表示点i与点j是否存在长2k的路径,则可以递推出ava ...

  5. 【luogu P2002】消息扩散

    https://www.luogu.org/problem/show?pid=2002 SCC缩点的模板题,缩点后统计入度为0的点的数量就完了. #include <iostream> # ...

  6. WPF水珠效果按钮组

    效果图 相关知识 这部分基本就是废话,网上都能找到,我只不过是整理了以下.建议先不看,用到的时候可以回来看看 贝塞尔曲线 先来看两组图,有助于理解什么是贝塞尔曲线(图片取自维基百科,参考链接1) 二次 ...

  7. jq获取今天、昨天、一周时间

    不少后台文章管理系统就有今天.明天.一周内.全部的分类展示,用Jquery获取今天.明天.一周内的时间节点(如下图) html页面代码: <div class="date-list-c ...

  8. Windows_server_2012-r2_x64安装教程

    版本: Windows_server_2012-r2_x64 工具: VMware vSphere Client 镜像地址: http://www.xpgod.com/soft/10718.html( ...

  9. 动手开发一个名为“微天气”的微信小程序(上)

    引言:在智能手机软件的装机量中,天气预报类的APP排在比較靠前的位置.说明用户对天气的关注度非常高.由于人们不管是工作还是度假旅游等各种活动都须要依据自然天气来安排.跟着本文开发一个"微天气 ...

  10. 2014/08/23——OJ及相关站点打开速度非常慢,训练计划login直接error!

    问题: 这个问题存在已经将近一个星期了.刚開始时发现OJ及相关的站点有时候打开有点慢,那时候也没在意,后来时快时慢的越来越频繁:今天早上直接一直都打开非常慢(无论什么时候.这样的情况);训练计划和做题 ...