IDEA高效调试,你真的会了吗

大家好,这里是 一口八宝周 👏

欢迎来到我的博客 ❤️一起交流学习

文章中有需要改进的地方请大佬们多多指点 谢谢 🙏

由于平时工作中经常需要debug调试代码,每次调试都会阻塞住进程,影响别人排查问题。

"你一个人debug一分钟,公司那么多的人,那就是多少分钟..."

为了高效排查问题,且不影响他人,高效利用debug调试就非常重要了。ok

进入正题!!

基础断点

首先就是最基础的断点,直接断点,该操作会暂停所有进入该方法的线程。【不建议使用】

条件断点

条件断点就是比上一个好一点的调试方式,在断点的时候选择【Thread】而不是【All】

加入条件后,只有符合条件的线程会进入该方法,如果operate为"sub"则不会进入debug调试。这样一来也可以有效的避免了阻塞他人操作,即使操作相同,只要参数不同也不会进入debug。

我觉得这个最棒的一点就是调试 for 循环,假设我们这个循环有 100 个对象,但是我只想要其中1个对象的循环,总不能一直点到那个对象为止吧,这时候条件断点就是最优选,直接定位到你想要的对象。

不暂停断点

该方法可以不暂停线程的执行

查看变量值

取消勾选Suspend,并打印想要看的参数变量,可以输出打印想要查看的变量。

可以看到输出了我们想要查看的变量值。

改变变量值

模拟修改变量值,测试多场景,且不会影响其他线程的执行。

查看调用方

可以直接观察到调用堆栈,类似 Arthas 的 trace,查看谁调用了我

debug神器-Evaluate Expression

evaluate expression是idea一个在debug模式下可以动态执行代码的工具,可以动态修改代码运行时的变量值,利用这个工具我们可以在debug的时候执行代码中的方法,查看变量的值。

下图为代码debug到第9行,使用evaluate expression输出result的值。

返回上层

有时候debug的时候点的太快了,就容易跳过断点,就只有重头再来。前天和同事聊天的时候,学习到了使用Reset Frame的方式进行调试,直接点击那个箭头,或者右键选择【Reset Frame】都可以回到上一个的调用方法。

查看赋值

假设有个变量(这里为desc),我想知道这个流程中到底是谁给desc赋过值,结果一反引,几百处引用,那么我该如何知道谁在方法中给desc赋了值呢,只需要在对象的desc字段上打上断点即可

异常断点

还有一个异常断点,全局异常断点,会自动断点到我们出现异常的地方,输入想要断点的异常即可,这里不做演示了

以上就是关于idea断点的个人使用方式,希望能给排查问题的你一些帮助!

相关推荐
QC班长1 小时前
Maven公司私库配置踩坑点
java·服务器·maven·intellij-idea
人道领域13 小时前
【黑马点评日记】高并发秒杀:库存超卖与锁机制解析
java·开发语言·redis·spring·intellij-idea
1candobetter15 小时前
JAVA后端开发——多模块项目重命名体系解析
java·开发语言·intellij-idea
song85460113416 小时前
idea问题解决
java·ide·intellij-idea
公众号-老炮说Java1 天前
IDEA 2026.1 + Claude Code = 降维打击
java·ide·intellij-idea
CodeMartain2 天前
@SpringBootApplication 到底是什么呢?
java·spring boot·intellij-idea
MegaDataFlowers2 天前
解决idea报错不支持发行版本21
java·ide·intellij-idea
大黄烽2 天前
IDEA中集成AI 工具CodeBuddy和Trae区别和选型
java·人工智能·intellij-idea
Java_2017_csdn2 天前
‌IntelliJ IDEA 2026.1 中 Git、GitHub、GitLab 功能对比与实操指南
git·github·intellij-idea
xixingzhe22 天前
idea启动vue项目
java·vue.js·intellij-idea