你好,欢迎进入江苏优软数字科技有限公司官网!

诚信、勤奋、创新、卓越

友好定价、专业客服支持、正版软件一站式服务提供

13262879759

工作日:9:00-22:00

Intellij IDEA中Debug模式的使用方法及界面介绍

发布时间:2025-05-28

浏览次数:0

出处:www..com/

Debug工具用于跟踪代码执行轨迹,常见于程序运行时出现异常情况。激活Debug模式有助于我们分析并确定异常的具体位置,同时还能观察到运行过程中参数的变动。此外,我们还可以通过开启Debug模式来监视代码执行过程,以便学习第三方框架的源代码。

因此,我们需要掌握在IDEA中高效运用调试技巧的方法,具体涉及以下几点:

IntelliJ IDEA Debug技巧_Intellij IDEA Debug模式使用教程_intellij idea视频讲解

一、Debug开篇

首先看下IDEA中Debug模式下的界面。

在IDEA软件中开启调试模式并抵达断点位置时,所呈现的界面可能与我处所见略异,尤其是在图标方面。下面我将简要介绍图中标记的八个关键区域:

在Debug模式下启动服务时,界面左侧的按钮用于切换至Run模式。在软件开发过程中,我通常直接选择Debug模式启动,这样便于我随时对代码进行调试。

在左侧的行号区域点击鼠标左键,或者使用快捷键Ctrl+F8来添加或移除断点,您可以根据个人喜好自行调整断点所在行的颜色。

在调试过程中,一旦访问请求触碰到首个断点,Debug窗口便会自动开启。若未自动开启,用户可进入设置进行相应调整,具体操作可参照图1.2。

调试按钮共有八个,它们分别对应调试的核心功能。将鼠标置于按钮之上,即可显示出相应的快捷键信息。此外,您还可以在菜单栏的“运行”选项中找到这些功能,具体可参照图1.4。

⑤ 服务按钮:可以在这里关闭/启动服务,设置断点等。

在方法调用栈中intellij idea视频讲解,可查看线程调试过程中所涉猎的各个方法;若选择勾选界面右上方的[显示全部]选项,则只会展示相关类库的方法;若未勾选,则会在此处呈现众多方法。

⑦ :在变量区可以查看当前断点之前的当前方法内的变量。

⑧ :查看变量,可以将区中的变量拖到中查看

[图1.1]

intellij idea视频讲解_Intellij IDEA Debug模式使用教程_IntelliJ IDEA Debug技巧

在[图1.2]所示界面中,若您在设置选项中勾选了“显示调试信息”,那么在请求成功进入断点位置后,调试窗口将会自动开启。

intellij idea视频讲解_Intellij IDEA Debug模式使用教程_IntelliJ IDEA Debug技巧

[图1.3]:若在您的IDEA界面下方未发现工具栏或状态栏,您可在“视图”菜单中进行启用,这样一来,工具栏的显现将有助于我们更便捷地操作。不妨亲自试一试这四个选项。

IntelliJ IDEA Debug技巧_Intellij IDEA Debug模式使用教程_intellij idea视频讲解

[图1.4]:点击菜单栏中的“Run”选项,即可找到调试功能,并且能够查阅相关的快捷键信息。

IntelliJ IDEA Debug技巧_Intellij IDEA Debug模式使用教程_intellij idea视频讲解

回到顶部

二、基本用法&快捷键

Debug调试的功能主要对应着图一中4和5两组按钮:

1、首先说第一组按钮,共8个按钮,从左到右依次如下:

[图2.1]

按下 Show Point 键(快捷键为 Alt + F10),若光标位于其他行或不同页面,点击此按钮即可直接跳转至当前代码正在执行的行。

按下F8键,执行“步过”操作,即逐行向下执行,遇到含有方法的行则不会进入该方法。

Step Into(F7)功能:用于进入当前行代码中的方法内部,若该行存在方法,则可执行此操作。通常应用于进入自定义方法,而非官方类库中的方法,例如第25行的put方法。

使用快捷键Alt+Shift+F7执行强制步入操作,此功能允许用户深入至任何方法,尤其在需要查看底层源码时,能够便捷地进入官方类库的相应方法。

按下Shift + F8组合键,执行“Step Out”操作,即可从当前方法内部退出,回到方法调用的位置。此时,方法已经运行完成,但尚未进行赋值操作。

默认情况下,不使用Drop Frame功能;关于回退断点的具体内容,将在后续章节中作详细阐述。

按下(Alt + F9)快捷键,即可执行运行至光标位置的操作。您只需将光标移动至想要查看的代码行,利用此功能,程序便会自动运行至该行,无需设置断点。

(Alt + F8):计算表达式,后面章节详细说明。

2、第二组按钮,共7个按钮,从上到下依次如下:

[图2.2]

执行'xxxx'重跑指令:需先终止现有服务,随后再启动程序以重新运行。

在代码有所调整时,您可以通过按下Ctrl + F5来刷新程序。此操作对应的服务配置步骤,可参照图2.3进行。

启动程序后,若在第20行与第25行设置了断点,当前执行至第20行时,按下F9键,程序将继续运行至第25行的断点。若再次按下F9,程序将执行至流程结束,因为后续已无断点设置。

程序暂停执行,进入调试模式。截至目前,尚未明确其具体操作方法。

执行'xxx'(按Ctrl + F2):连续点击两次,即可终止程序。但有时在重新开启服务时,会遇到端口已被占用的提示,这通常是因为服务并未彻底关闭所致。在这种情况下,您需要检查并结束所有JVM进程。

使用快捷键View(Ctrl + Shift + F8)可以查看所有断点设置,这一功能将在后续章节中有所涉及。

哑点作为程序中断点,一旦启用,所有断点将呈现灰色,此时断点功能失效,执行程序可通过直接按下F9键完成。若需重新启用断点,只需再次点击,断点将变为红色,恢复其功能。若仅想单独关闭某个断点,可在其上右击,如图2.4所示,该行断点即会失效。

[图2.3]:在执行更新程序的操作过程中,针对“On ''”这一环节,通常的做法是选取' and ',即对类文件和资源文件进行更新。

通常搭配热部署工具会更加高效,例如,这样一来,在修改代码之后便无需每次都重新启动服务。关于激活方法,将在最后一章进行详细说明。

在IDEA框架中,当窗口失去焦点时,会自动执行相应的操作,即通常情况下,当你从IDEA切换至浏览器时,IDEA会自动帮你完成某些设置。这类操作一般被称为“Do”,但频繁进行这样的切换会消耗较多系统资源。

intellij idea视频讲解_Intellij IDEA Debug模式使用教程_IntelliJ IDEA Debug技巧

[图2.4]

intellij idea视频讲解_Intellij IDEA Debug模式使用教程_IntelliJ IDEA Debug技巧

三、变量查看

在调试阶段,密切关注变量值的变化显得尤为关键,以下我将简要介绍在IDEA中可以观察变量变动的一些途径,相信这一点多数人都是知晓的。

1、如下,在IDEA中,参数所在行后面会显示当前变量的值。

IntelliJ IDEA Debug技巧_Intellij IDEA Debug模式使用教程_intellij idea视频讲解

[图3.1]

当光标停留在参数之上时,会显示出变量的实时信息。接着,通过点击操作,可以查看详细内容intellij idea视频讲解,如图3.3所示。我通常采用这种方法,因为它既快速又简便。

IntelliJ IDEA Debug技巧_intellij idea视频讲解_Intellij IDEA Debug模式使用教程

[图3.2]

Intellij IDEA Debug模式使用教程_IntelliJ IDEA Debug技巧_intellij idea视频讲解

[图3.3]

3、在里查看,这里显示当前方法里的所有变量。

intellij idea视频讲解_IntelliJ IDEA Debug技巧_Intellij IDEA Debug模式使用教程

[图3.4]

在界面中,点击“新建手表”选项,随后输入您希望查看的具体变量。此外,您也可以直接从相关区域拖拽所需变量至目标位置进行查看。

intellij idea视频讲解_Intellij IDEA Debug模式使用教程_IntelliJ IDEA Debug技巧

[图3.5]

如果你发现你没有,可能在下图所在的地方。

IntelliJ IDEA Debug技巧_intellij idea视频讲解_Intellij IDEA Debug模式使用教程

[图3.6]

IntelliJ IDEA Debug技巧_intellij idea视频讲解_Intellij IDEA Debug模式使用教程

[图3.7]

四、计算表达式

在图4.1中展示的计算表达式的按钮,通过按下(Alt + F8)组合键即可激活。此操作允许用户在调试阶段直接计算特定表达式的数值,无需额外进行信息打印。

[图4.1]

按下Alt键加数字8,或者点击相应的按钮,亦或是在某个表达式上先进行选择后再按Alt键加数字8,这时会弹出一个用于计算表达式的窗口,如图所示,然后您可以按回车键或者点击计算表达式的结果值。

该表达式不仅限于普通变量或参数,还涵盖了方法,若在一行代码中调用了多个方法,便可通过此途径来察看特定方法的输出结果。

intellij idea视频讲解_IntelliJ IDEA Debug技巧_Intellij IDEA Debug模式使用教程

[图4.2]

设定变量后,在计算表达式的输入区域,我们能够调整变量的数值,这样一来,在调试过程中,我们便能够轻松地观察不同数值带来的效果,不是吗?

intellij idea视频讲解_Intellij IDEA Debug模式使用教程_IntelliJ IDEA Debug技巧

[图4.3]

五、智能步入

思考一下,在一串代码中往往包含多个方法,我们该如何精准地挑选其中一个方法进行深入探究。之前已经介绍过,可以通过执行“Step Into”(快捷键Alt + F7)或者“Force Step Into”(快捷键Alt + Shift + F7)来进入方法内部,然而,这两个操作会按照方法的调用顺序逐一进入,这样的操作过程较为繁琐。

智能操作变得极为便捷,具体来说,这一功能在Run中便能查看到。您只需按下Shift + F7键,即可进入Smart Step Into模式,如图5.1所示。

IntelliJ IDEA Debug技巧_Intellij IDEA Debug模式使用教程_intellij idea视频讲解

[图5.1]

按下Shift键加F7键,系统将自动跳转至当前代码的断点所在行,并展示出可供选择的进入函数的方法,具体操作如图5.2所示,只需点击相应的方法即可进入函数的内部。

若仅存在一种途径,便径直踏入,与“强制进入”类似。

IntelliJ IDEA Debug技巧_intellij idea视频讲解_Intellij IDEA Debug模式使用教程

[图5.2]

六、断点条件设置

只有当设定的断点条件得到满足,程序才会停留在该断点位置,否则程序将连续执行。

通常情况下,当我们对庞大的集合或数组进行遍历时,循环中若设置了断点,难道我们需要逐一查看每个变量的具体数值?这样做无疑会非常繁琐,甚至可能让你错过需要重新审视的机会。

在断点处点击鼠标右键,即可对当前断点的条件进行设定,例如在图6.1中所示,只有当我将exist设置为true时,该断点才会启动。

IntelliJ IDEA Debug技巧_intellij idea视频讲解_Intellij IDEA Debug模式使用教程

[图6.1]

按下View键(快捷键为Ctrl+Shift+F8),可以查看所有的断点设置。

Java行功能展示了所有断点,用户可在右侧进行勾选操作,并对断点条件进行配置。

选择“Log to”选项,即可将当前断点所在行的信息输出至控制台,具体如图6.3所示。

选择“and log”选项,即可在运行该代码时,对表达式的数值进行计算,并将所得结果展示在控制台界面。

[图6.2]

Intellij IDEA Debug模式使用教程_intellij idea视频讲解_IntelliJ IDEA Debug技巧

[图6.3]

intellij idea视频讲解_Intellij IDEA Debug模式使用教程_IntelliJ IDEA Debug技巧

3、再说说右边的过滤,这些一般情况下不常用,简单说下意思。

进行实例筛选时,需输入实例的唯一标识符,例如图6.5中所示的实例标识,可遗憾的是,我在此操作中遇到了障碍,未能顺利完成,原因不明。若有人了解情况,还请留言告知。

Class :类过滤,根据类名过滤,同样没有成功….

在循环过程中,Pass count扮演着关键角色。它允许用户设定一个特定的次数,当循环达到这个次数时,程序会自动在断点处停止。自那时起,无论循环继续多少次,程序都会停留在该断点。

[图6.4]

intellij idea视频讲解_IntelliJ IDEA Debug技巧_Intellij IDEA Debug模式使用教程

[图6.5]

Intellij IDEA Debug模式使用教程_IntelliJ IDEA Debug技巧_intellij idea视频讲解

设置异常断点后,程序在遭遇需拦截的异常时,能够自动跳转至异常所在的代码行。

如图6.6所示,需点击加号图标以添加Java元素,并设置异常断点。接着,输入目标异常类名称,如图6.7所示。完成这些步骤后,您将在Java环境中观察到新添加的异常断点。

我在此处增设了一个特殊的断点,如图6.8所示,一旦发生空指针错误,程序便会自动跳转至引发该异常的具体代码行。

[图6.6]

IntelliJ IDEA Debug技巧_Intellij IDEA Debug模式使用教程_intellij idea视频讲解

[图6.7]

intellij idea视频讲解_IntelliJ IDEA Debug技巧_Intellij IDEA Debug模式使用教程

[图6.8]

IntelliJ IDEA Debug技巧_intellij idea视频讲解_Intellij IDEA Debug模式使用教程

七、多线程调试

通常在调试过程中,我们是在单个线程内逐步推进的,然而,有时你可能会遇到这种情况,即在尝试进行调试时,想要启动另一个请求却变得不可能进行。

这是因为IDEA在调试过程中,其默认的阻塞等级设定为ALL,从而会阻碍其他线程的运行,只有当当前的调试线程执行完毕后,其他线程才会得以继续执行。用户可以在视图界面中进行设置,具体操作如图7.1所示,接着点击“Make”选项,将其设置为默认选项。

[图7.1]

Intellij IDEA Debug模式使用教程_IntelliJ IDEA Debug技巧_intellij idea视频讲解

在图7.2的下拉菜单中,您可以通过选择来改变当前活动的线程。以我为例,这里有两个标记为Debug的线程,若选择切换至另一个,便将进入对应的Debug线程。

[图7.2]

IntelliJ IDEA Debug技巧_Intellij IDEA Debug模式使用教程_intellij idea视频讲解

八、回退断点

在调试的时候,想要重新走一下流程而不用再次发起一个请求?

首先,让我们来了解一下这个方法的调用栈,如图8.1所示。首先,是请求进入的方法,接着是调用的方法。至于其他的方法,我们暂时可以忽略。而位于最上方的,正是当前断点所在的方法。

[图8.1]

Intellij IDEA Debug模式使用教程_IntelliJ IDEA Debug技巧_intellij idea视频讲解

2、断点回退

所谓的断点回退,实际上是指将程序执行回溯至上一个方法调用的起始位置。在IDEA中,进行测试时无法实现逐行回退或直接跳转至上一个断点,而是只能回退至上一个方法。

有两种回退途径可供选择,其一为点击“Drop Frame”按钮(参见图8.2),通过逐步调用的方式实现回退,这其中包括了三方类库中的其他方法(如取消“Show All”按钮,即可显示三方类库中的方法,如图8.3所示)。

采用第二种操作方法,需在方法调用栈中挑选欲撤销的步骤,通过点击右键并执行“Drop Frame”操作(如图8.4所示),即可回溯至该步骤的前一个调用点。随后,轻按F9键,屏幕上便会显现程序已成功跳转至该方法的断点位置。

但需留意,若进行断点回退,则只能重新执行一遍流程,而对于那些在流程中已发生改变的参数或数据,如对象、集合以及已更新的数据库信息等,是无法恢复到之前状态的。

图[8.2]

图[8.3]

IntelliJ IDEA Debug技巧_intellij idea视频讲解_Intellij IDEA Debug模式使用教程

图[8.4]

intellij idea视频讲解_Intellij IDEA Debug模式使用教程_IntelliJ IDEA Debug技巧

九、中断Debug

想要在Debug的时候,中断请求,不要再走剩余的流程了?

当发现输入的参数存在错误,我们往往不想继续执行后续步骤,比如删除数据库中的数据,这时我们该如何终止此次请求呢?难道真的需要关闭整个服务并重启程序?是的,我以前确实是这样做的。

准确来说,我并未找到一种能够直接终止请求的手段(除了关闭服务),然而,我们可以通过执行强制返回操作来阻止后续流程的进行,具体可参考图9.1。

按下Force按钮,会出现Value窗口,由于我的方法返回值类型是Map,因此我直接返回一个空Map对象,以此强制实现返回,进而跳过后续的操作流程。你也可以选择创建一个新的Map对象。

[图9.1]

intellij idea视频讲解_IntelliJ IDEA Debug技巧_Intellij IDEA Debug模式使用教程

[图9.2]

IntelliJ IDEA Debug技巧_Intellij IDEA Debug模式使用教程_intellij idea视频讲解

有什么不妥之处或者更好的方式,欢迎留言!

长按关注,学习更多

Intellij IDEA Debug模式使用教程_IntelliJ IDEA Debug技巧_intellij idea视频讲解

如有侵权请联系删除!

13262879759

微信二维码