IDEA调试方法总结及各种Step的区别
1.打断点
IDEA 添加断点的方式还是比较简单的,我们可以直接在某一行的代码行号后点击鼠标左键进行添加
2.启动调试
如果我们想要调试我们的程序,那我们必须以DEBUG的形式启动我们的程序,以DEBUG 的形式启动有很多种方式:
1. 直接在要运行的类上面右键 --> Debug xxx
2.点击代码前的绿色小三角 选择 DEBUG xxx
3.点击工具栏上面的小虫子
4.点击菜单栏的RUN --> DEBUG XXX
还有其他很多种方式,这里就不再例举
3. 调试方法
3.1 Step Over
Step Over 单步执行:是指执行当前行代码,如果当前行代码是一个方法调用,则直接运行完这个方法,得到方法的返回值,而不会进入到这个方法。
注意:这是不会进入到方法内部的,而是直接得到方法的返回值。
3.2 Step Into
Step Into 单步执行: 是指执行当前行代码,若当前行代码是一个方法调用,则进入该方法,然后继续单步执行。
他与Step Over的区别就是,如果当前行是一个方法调用,Step Into 会进入到这个方法继续单步执行,而Step Over 则是直接将整个方法执行完。
这里还有一点需要注意的就是,Step Into是不会进入到JDK实现的方法的,他只会进入到我们自定义的方法中。
3.3 Force Step Into
Force Step Into 也是单步执行,他与Step Into 类似。二者唯一的区别是:Step Into 不会进入到JDK实现的方法中,而Force Step Into 会进入到JDK实现的方法中。
Force Step Into 会进入到任何方法中单步执行!!!
3.4 Step Out
Step Out 是跳出执行:它是指当我们在一个方法中调试时,如果觉得该方法在后面不会有任何问题或者不需要再调试该方法时,可以使用Step Out直接跳出该方法,返回到方法调用处。
也就是说,我们可以在方法中使用Step Out 直接跳出该方法,继续回到调用该方法的地方进行调试。
3.5 Run To Cursor
Run To Cursor 是指运行到光标处,它可以使我们调试的程序从当前位置直接运行到我们光标所在的位置(就是用鼠标点一下以后一直在闪,可以输入的那个位置)然后等待下一步命令。
3.6 Drop Frame
Drop Frame 是指销毁当前方法的栈帧,回到上一级调用方法时的状态 ,等待下一步操作命令。注意:这里的返回是指销毁性返回,所有的变量的值和程序当前的环境都会被还原到调用该方法之前的状态。
4.其他一些常用的方法
4.1 条件断点
所谓条件断点,就是指当程序执行时,断点所在的位置满足断点指定的要求时,断点才会起作用 。
例如下面这个第60行条件断点的意思就是,只有当 i 的值等于60的时候,断点才会起作用,否则断点无效。
条件断点的设值方式:在断点上点击鼠标右键,会弹出一个小框框,我们可以在其中设值断点的很多属性,其中Condition 就是条件断点的条件。
4.2 断点跨越
所谓断点跨越就是从当前执行的行直接运行到下一个断点所在的位置。应用场景也很简单,比如我再这个断点附近调试完毕,所有结果都符合预期,那么在到达下一个断点之间很长
的一段代码可能不需要调试,那么这个时候我们就可以使用断点跨越直接到达下一个断点进行调试。
使用方式,保证程序在下一个需要调试的断点之前,点击Resume Program
4.3 查看变量值
查看变量的值可以说是我们调试个过程中必不可少的要求了,IDEA允许我们查看变量的值:
4.4 查看全部断点和跳过断点
1. 跳过断点 Mute BreakPoints :
在我们调试某一段代码时,如果本次想要放行全部断点(即不想调试本次),但是下一次还需要进行调试,则可以让断点暂时失效(断点静音),这是就使用到了跳过断点的操作。
所谓跳过断点,其实就是使断点在本次执行中暂时保持静音状态,下次还能继续使用。
2.查看全部断点:
当我们打了很多断点的时候,如果想查看一下全部的断点,那么就可以使用查看全部断点的操作了
打开以后是这样的:
5.补充
这里给大家一个B站上讲解IDEA 调试的视频: