目录
Stream 调试(Trace Current Stream Chain)
前言
Debug 是程序员的开发神器,使用好了可以帮助我们非常高效的工作、学习、排查问题等。毫不客气的说,是决定我们进阶到更高层级的一个重要技能。
今天跟大家分享一下 IDEA 中 Debug 调试的各种奇技淫巧。
本文内容有视频版本,喜欢看视频的同学可以直接通过下面的二维码观看。如果你对文章的内容有疑惑,有可以先看视频的对应内容,视频可能讲的会更细一点。
全网最实用的 IDEA Debug 调试技巧(超详细案例)https://www.bilibili.com/video/BV1xa411Y72S?spm_id_from=333.999.0.0
正文
Debug 的常见使用场景
-
需求代码测试:通过debug你才能知道你的代码究竟是怎么运行的,更容易发现问题
-
问题排查:只要能进入到问题流程的debug,就没有排查不了的问题
-
源码学习:源码通常很庞大,通过Debug 我们能更清晰的知道执行到哪个地方,执行时的各个变量数据
基础操作
Step over:程序往下执行一行
Step into:进入方法内,可以进入自定义方法或三方库方法,JDK方法无法进入
Force step into:强制进入方法内,一般 Step into 进不去时可以使用
Step out:退出方法,跟(force)step into 配合使用
Resume Program:恢复运行程序,运行到下一个断点的地方
5个操作从上往下分别对应下图的1-5,这也是 Debug 最常用的几个基础操作。
行断点(Line Breakpoints)
图标:红色圆形
功能:最常用的断点,在断点所在行进行暂停。
理论上只要有行断点和上面的基本操作,就可以完成大部分的 Debug 调试了,但是很多场景下只使用这些功能,调试是很低效了,接下来我们将依次介绍各种好用的调试技巧。
方法断点(Method Breakpoint)
图标:红色菱形
功能:在方法入口(entry)和出口(exit)都会自动暂停。在方法入口暂停可以让我们从头调试整个方法,而在方法出口处暂停可以让我们看到方法执行完毕时,方法内各个变量的数据情况。
有时候我们的一个接口会存在很多实现类,我们短时间内难以分析究竟是运行到了哪个实现类中,这个时候就可以使用方法断点,我们将断点打在接口方法上,运行到该方法时,会自动跳到实际执行的实现类,无需通过上下文环境去分析是哪个实现类。
缺点:可能会大大降低debug速度
字段断点(Field Watchpoints)
图标:红色眼睛
功能:在字段发生变更(默认)或者被访问(需要额外设置)时暂停。
如果我们想知道某个属性在什么时候被修改,从入口处开始调试太麻烦,我们可以直接在字段上打上字段断点,这样字段被修改的时候就会自动暂停。
而如果我们想在字段被访问时也暂停,则可以右键字段断点,将【Field access】勾选上即可。
异常断点(Exception Breakpoints)
图标:红色闪电
功能:可以在抛出异常的地方进行暂停
<