IDEA Debug调试断点高级玩法

  • 一、设置条件断点
  • 二、表达式解析
  • 三、避免操作资源
  • 四、断点调试的一些快捷键、图标
  • 五、流式编程的断点调试


一、设置条件断点

打完断点,再次右键点击断点,可以设置
(断点只会在符合条件的情况下停顿,不会影响程序)

①只在循环为偶数的时候断点

IDEA监控断点 idea断点调试技巧_intellij idea


②设置只在线程1的时候断点

Thread.currentThread().getName().equals(“thread1”)

IDEA监控断点 idea断点调试技巧_IDEA监控断点_02


③点击more可以更详细配置

IDEA监控断点 idea断点调试技巧_debug_03


勾选“Breakpoint hit”message 在断点触发了会打印断点信息

Stack trace 会同时打印队栈信息

IDEA监控断点 idea断点调试技巧_断点调试_04


**

二、表达式解析

**

调试程序,点击这个小计算器一样的图标,或者Alt+F8

IDEA监控断点 idea断点调试技巧_java_05

IDEA监控断点 idea断点调试技巧_intellij idea_06


就可以开始做表达式解析了,输入上文已创建的对象或者其他玩意解析

比如说这个地方有多个if else 的判断,可以用此来判断ture和false,或者看某个方法的返回值

三、避免操作资源

在某个出bug的问题代码块中,可能没有try,处理异常,可能就把错误数据存进了redis等数据库中,这时处理起来非常麻烦

IDEA监控断点 idea断点调试技巧_java_07


比如在此时,调试过程中,发现了异常,想点stop结束程序,但是方法进入之后必须要出栈,方法内部的一些指令还是会走完,程序依然会运行完成,操作还是会继续可能你会点击 Drop Frame,丢弃当前帧

IDEA监控断点 idea断点调试技巧_IDEA监控断点_08


但是,这只会回到调用方法前,之后继续走的话还是要执行此方法,陷入死循环具体操作:

比如现在光标点位到了,不想执行的这一行

打开Frame面板,点击右键,Force Return,强制返回,会跳过该方法

IDEA监控断点 idea断点调试技巧_debug_09


IDEA监控断点 idea断点调试技巧_debug_10

四、断点调试的一些快捷键、图标

IDEA监控断点 idea断点调试技巧_java_11


① 光标回到断点停顿的地方

② step over(F8 )
这行执行完毕就跳到下一行

③step into ⑤step out
③跳进方法体内 执行方法体内代码,⑤跳出方法体

⑦ run to cursor
从当前代码跳到光标处代码(中间代码依旧执行)

五、流式编程的断点调试

IDEA监控断点 idea断点调试技巧_java_12


可以选择一行,还是里面的一个表达式

IDEA监控断点 idea断点调试技巧_断点调试_13

可以进行更精细的流式处理

IDEA监控断点 idea断点调试技巧_断点调试_14