当前位置:首页>软件教程>Idea调试Debug技巧

Idea调试Debug技巧

基础DEBUG操作

Step Over:往下运行一行

Step Into 进入当前行的方法内,自定义方法可以进,JDK方法无法进去

Force Step Into 强制进入当前行方法(有一些方法Step Into进不去)

Step Out 跳出当前方法

Resume Program:恢复运行程序,运行到下一个断点地方

Drop Frame:降帧(退回执行方法之前)
基础Debug

方法断点

断点打在方法上

  • 方法断点:方法的入口(entry)和出口(exist)都会自动暂停(可以更改)
  • 常用场景:打在接口方法会自动跳转到实现类,无需通过上下文环境去分析是哪个实现类
  • 缺点:可能会大大降低debug速度

方法断点

字段断点

  • 字段断点:在字段发生变更(默认)或者被访问(需要额外设置)时暂停
  • 常用场景:想知道某个属性什么时候被复制,从头开始调试太麻烦

字段断点

异常断点

  • 异常断点:在发生相应异常的地方暂停
  • 常用场景:程序抛出了异常,想要快速定位是那个地方抛出了异常
  • 缺点:异常可能会太多

异常断点

主动抛出异常

  • 应用场景:测试异常场景

降帧

  • 降振:返回到调用方法之前(drop frame
  • 常用场景:方法执行完还想再执行一遍

就是开头的说的基础中的Drop Frame

条件断点(??)

  • 条件断点:在符合条件的情况下才暂停
  • 常用场景:断点地方执行次数过多,避免浪费时间在不想关注的流程上,例如排查存在某个问题的spring bean

条件断点

强制返回

  • 强制返回:用于结束当前流程,直接返回
  • 常用场景:避免后续资源(数据库/缓存)操作

当我们debug是发现数据有问题,接下来又来写入数据库等操作可能会更改数据,我们正常点击stop他还是会将这个断点运行完,为了不让更改数据则需要强制返回

强制返回

stream调试(链式代码)

  • stream调试:当代码进入调用链时,可以将stream的详细转换过程展示出来
  • 常用场景:stream流程过于复杂导致难以理解时使用

stream1

stream2

执行表达式(??)

  • 执行表达式:高效调试神器。用于执行一段我们实时写的代码
  • 常用场景:查看数据、修改数据
  • 奇技淫巧:后面再说..Evaluate Expression + Remote Debug

执行表达式

未完等待添加...

后续暂时用不到,后续在22分钟后

给TA打赏
共{{data.count}}人
人已打赏
软件教程

B2Pro主题使用手册

2022-8-4 22:49:48

软件教程

利用idea打jar包以及运行

2022-9-23 13:36:42

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
有新私信 私信列表
搜索