001、条件断点
给断点增加一个 Java
条件表达式,当表达式的值是 true
时断点才生效,例如设置 for
循环中 i
为偶数时断点才生效:
002、计算表达式
003、修改变量值
有些时候程序运行结果不符合预期,但是我们不想修改代码重头再来,这时可以动态地修改变量的值:
004、打印堆栈信息
005、监听变量
用于监听变量,当变量被修改和读取时程序会暂停运行,例如监听 count
变量:
006、自定义多线程执行顺序
将断点设置为线程级别,这样就可以人为地操控线程的执行顺序,对于调试高并发下的特殊情况非常有帮助:
例如手动操控先打印 thread-2
再打印 thread-1
:
007、回退父级函数
有些时候不小心点了单步进入到方法内部,可以通过 丢弃当前帧
退回来,它的厉害之处在于退出来之后带能再进入:
008、Stream流追踪
用于展示 stream
流每一步的执行结果,方便观察步骤比较多的 stream
流逻辑:
009、force return 强制返回
有时在调试的时候发现了一些错误,这时想停止运行,因为继续往下执行会插入一些数据,清理数据又是一番功夫,如果点击停止运行是不行的,IDEA
会把当前方法后面的代码都执行了,解决这个问题可以用 force return
选项强制返回:
010、方法断点
011、跳转到光标
有时代码行数比较多,不想一行一行地点击执行,可以将光标定位到目标行,再点击按钮直接执行到光标处: