IDEA的DEUG模式技巧和使用

前言

其实,debug模式,我在前面已经用了很多了,但是还是有一些技巧上的东西,来帮助我们更好的去测试,因此,本次文章就这个来进行一个汇总使用

基础

最最基础构成DEBUG模式调试的,我觉得应该是有两块,断点步进
断点
断点的表现,是一个圆圆的红点
在这里插入图片描述
在对应需要停留的代码行进行鼠标左键就会添加
另外,

在一个方法内部其实只需要在方法的最开始部分进行点一个点就可以通过步进停留执行完该方法所有的代码块

步进
在这里插入图片描述

以上不同的箭头都属于步进,那么他们分别都是怎么使用?
从左往右分别代表的含义如下:
Step over:程序往下执行一行

Step into:进入方法内,可以进入自定义方法或三方库方法,JDK方法无法进入

Force step into:强制进入方法内,一般 Step into 进不去时可以使用

Step out:退出方法,跟(force)step into 配合使用

Drop Frame:当我们 Debug 从 A 方法进入 B 方法时,通过降帧(退帧)可以返回到调用 B 方法前,这样我们就可以再一次调用 B 方法。
此外点击左边三角的地方
可以跳到下一个断点处或者说恢复运行
在这里插入图片描述

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

那么,这些就是一个最最基础的debug的使用了

技巧

断点

上面,我们说的断点,其实是断点的一种,断点还有分多种
行断点(Line Breakpoints)
图标:红色圆形

功能:最常用的断点,在断点所在行进行暂停。

理论上只要有行断点和上面的基本操作,就可以完成大部分的 Debug 调试了,但是很多场景下只使用这些功能,调试是很低效的

方法断点(Method Breakpoint)
图标:红色菱形
在这里插入图片描述

功能:在方法入口(entry)和出口(exit)都会自动暂停。在方法入口暂停可以让我们从头调试整个方法,
而在方法出口处暂停可以让我们看到方法执行完毕时,方法内各个变量的数据情况。

有时候我们的一个接口会存在很多实现类,我们短时间内难以分析究竟是运行到了哪个实现类中,这个时候就可以使用方法断点,我们将断点打在接口方法上,运行到该方法时,会自动跳到实际执行的实现类,无需通过上下文环境去分析是哪个实现类。

缺点:复杂的项目中可能会降低debug的执行速度


字段断点(Field Watchpoints)
图标:红色眼睛
在这里插入图片描述

功能:在字段发生变更(默认)或者被访问(需要额外设置)时暂停。

如果我们想知道某个属性在什么时候被修改,从入口处开始调试太麻烦,我们可以直接在字段上打上字段断点,这样字段被修改的时候就会自动暂停。

而如果我们想在字段被访问时也暂停,则可以右键字段断点,将【Field access】勾选上即可。


执行表达式(Evaluate Expression)

在我们的debug模式下有一个计算器
在这里插入图片描述
当我们运行到断点的时候,就可以打开计算器,执行还在这个生命周期内某个属性的最终结果
如:
在这里插入图片描述
我的这个项目中,有定义一个变量STUDENT,当执行到这里的时候就可以打开计算器计算STUDENT
在这里插入图片描述
如果,当执行完这一步,到下一步之后并没有这个变量,你是没办法去计算这个值的

当我们遇到循环或者需要查看某些属性的值的时候,这个就可以很好的帮助我们

断点条件(Condition)

当我们在断点进行鼠标右键的时候,是能够输入条件,当条件成立的时候,才会停在断点处。
在这里插入图片描述
这么做的好处是什么?
我们假设一个场景
有一个for循环,数据量有10000条,除了一条数据是A,其他数据都是B,你需要找到这个A停留观察它的情况
这个时候你总不能还是靠步进一步一步的点到我们需要找的数据吧?

甚至说数据量更多,十万、一百万呢?
那么这个时候,我们就可以在Condition条件一栏写上:

data = "A" (假设对应的字段属性是命名为data)

也就是对应的属性等于对应需要查找的值

结语

以上就是IDEA的DEBUG模式上的使用和技巧,如有新内容,会在本文章更新

猜你喜欢

转载自blog.csdn.net/xc9711/article/details/126655946