全网最实用的 IDEA Debug 调试技巧(超详细案例)

本文详述了IDEA的调试技巧,包括行断点、方法断点、字段断点、异常断点等,强调了远程调试、多线程调试的重要性,并提供了远程调试的配置教程,旨在提升开发者的问题排查和学习效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

前言

正文

Debug 的常见使用场景

基础操作

行断点(Line Breakpoints)

方法断点(Method Breakpoint)

字段断点(Field Watchpoints)

异常断点(Exception Breakpoints)

主动抛异常(Throw Exception)

降帧(Drop Frame)

断点条件(Condition)

强制返回(Force Return)

Stream 调试(Trace Current Stream Chain)

执行表达式(Evaluate Expression)

远程调试(Remote JVM Debug)

远程调试使用教程

多线程调试(Suspend)

Thread模式执行

All 模式执行

Debug Advance

推荐阅读


前言

Debug 是程序员的开发神器,使用好了可以帮助我们非常高效的工作、学习、排查问题等。毫不客气的说,是决定我们进阶到更高层级的一个重要技能。

今天跟大家分享一下 IDEA 中 Debug 调试的各种奇技淫巧。

本文内容有视频版本,喜欢看视频的同学可以直接通过下面的二维码观看。如果你对文章的内容有疑惑,有可以先看视频的对应内容,视频可能讲的会更细一点。

全网最实用的 IDEA Debug 调试技巧(超详细案例)icon-default.png?t=M3K6https://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)

图标:红色闪电

功能:可以在抛出异常的地方进行暂停

<
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员囧辉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值