• 细说MyEclipse调试


        在程序出现问题时,我们需要找到并解决掉这些恼人的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() 等等         

                  

       参考资料包括:

           1 黑马程序员许刚老师视频  

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

    觉得不错请点个赞 若有想法随意评论 问题难解就联系我 互相帮助才是网络
  • 相关阅读:
    C. MP3(离散化 暴力)
    最大团、最小独立集
    欧拉函数
    In Touch(dijk+并查集优化)
    Path(2019 杭电多校第一场 ) hdu 6582(最短路模板+dinic模板)
    2019 南昌邀请赛 Winner (tarjan缩点)
    mybatis主键回填和自定义
    mybatis配置xml文件的层次结构
    Paratroopers
    Dual Core CPU
  • 原文地址:https://www.cnblogs.com/UzumakiNaruto/p/5367246.html
Copyright © 2020-2023  润新知