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

诚信、勤奋、创新、卓越

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

13262879759

工作日:9:00-22:00

Intellij IDEA中如何使用Debug追踪代码运行流程及三方框架源码?

发布时间:2025-08-14

浏览次数:0

调试功能用于监视程序执行步骤,常在程序执行时遇到故障,开启调试状态能够找出故障产生的具体点,同时也能观察执行期间变量值的变化情况,调试状态同样可用于观察代码执行路径,以便理解外部库的内部实现。

在 IDEA中使用好Debug,主要包括如下内容:

一、Debug开篇

先来观察一下IDEA开启调试模式时的界面,接着是IDEA启动调试模式后,到达断点状态时的界面,我的这个版本,或许会和Mac版的图标等存在差异。下面具体谈谈图中标示的八个部分。

以调试形态开启应用,左侧的一个按键用于以执行形态开启。在构建阶段,我通常直接开启调试形态,以便随时检查程序代码。

在左侧行号位置按下鼠标左键,或者运用快捷键Ctrl+F8,可以设置或移除断点,断点所在行的颜色可以根据个人喜好进行调整。

调试窗口:当请求抵达首个中断点时,该窗口会自动开启。若未自动开启,可前往设定界面进行配置,参照图1.2。

设置按钮数量为八个,各项调整任务均由这些按钮承担,将鼠标移至按钮处即可得知其功能键位。在操作选项中的运行目录下,同样能够找到这些功能,具体情况参照图1.4所示。

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

调用堆栈:此处呈现了该线程调试期间涉及的全部方法,选中右上角的

Show All

如果没有点击那个按钮,那么其他类库中的方法就不会被呈现出来,否则这一部分将会充斥着大量不同的方法。

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

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

若在配置中选定开启调试显示,当调用抵达暂停点时,会随即启动调试界面。

若IDEA下端未呈现工具栏或状态栏,可在视图菜单中启用,展现工具栏能提升操作便捷性。建议亲自测试这四个功能项。

在菜单栏Run里有调试对应的功能,同时可以查看。

二、基本用法&快捷键

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

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

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

更新软件,在开展升级任务时,通常涉及两个主要方面,分别是替换升级模块,以及重新配置资源文档。

采用热部署插件通常更为便捷,例如,借助它便无需每次代码调整后重启服务程序,具体启用方法将在章节末尾说明。

这个On frame ,当它在IDEA界面中失去注意力时就会起作用,也就是通常你从IDEA切换到浏览器时,IDEA会自动为你处理的事情,一般可以设定为Do ,频繁转换会导致资源消耗比较大。

三、变量查看

调试期间,监测变量变动十分关键,接下来列举几个可以观察变量的位置,多数人都清楚。

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

鼠标移至参数处,即可呈现当前变量详情。选中可查看完整信息,如图3.3所示。我通常采用此方法,既省时又高效。

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

在那个界面,先选择创建新监测,然后填入要观察的指标。也可以直接把指标从一处拽到另一处进行观察。

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

四、计算表达式

那个先前讲到的运算式,如图4.1所标示的按键,(Alt + F8),能够用来在调试环节求得某个式子的结果,无需再借助输出信息的方式。

通过按下Alt加F8组合键,或者直接点击相应按钮,亦或先选中某个公式再执行Alt加F8操作,即可打开用于运算公式的界面,参照下图所示,随后按下回车键,或点击确定运算结果的按钮。

这个式子既可以是普通变量或参数,又可以是函数,当你在单行代码里调用了好几个函数时,就能用这个办法来查看某个函数的计算结果。

建立标识,在运算式区域,能够调整标识的数值,有时能很便捷地检验不同数值状况。

五、智能步入

考虑,一段程序指令中包含多个函数,如何仅挑选某个函数进行深入分析。早先说过借助逐步调试(Alt + F7)或强制逐步调试(Alt + Shift + F7)进入函数内部,但这两种方式会按照函数被调用的次序逐一深入,这个过程相当繁琐。

那么智能步入使用起来就很便捷,这个操作在Run选项中可以找到,Smart Step Into (Shift + F7)就是该功能,参见图5.1

Intellij IDEA Debug使用技巧_Debug模式下的界面与功能_intellij idea图标

按下Shift加F7键,能够自动找到当前中断的行,并显示需要进入的函数,参照图5.2,选择函数后即可进入函数内部。

若仅存在一个途径,则立即采用,如同强行单步调试。

六、断点条件设置

在设定暂停标准后,当条件达成,程序便会在此处暂停,若条件未满足,则继续执行。

一般情况下,处理规模庞大的数据集或列表时,如果在程序流程中加入暂停点,难道需要逐个检查变量数据吗?这样做肯定非常费时费力,而且极有可能遗漏需要再次审视的情况。

在断点位置单击鼠标右键,可以立刻设定该断点的触发条件,参照图6.1,我设定了exist变量为真值时,断点才会被激活。

打开视图界面,同时按下控制加Shift加F8键,即可显示全部暂停点。

Java编辑器界面列出了全部暂停点,在右侧栏中选取,可以设定暂停点的触发条件。

选中记录日志选项,就会把当前暂停位置的那一行信息显示在屏幕上,参照图6.3所示

选中并记录,能够在这条指令运行时评估公式,然后把值显示在屏幕上。

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

尝试过滤实例,需要提供实例编号(参考图6.5中的编号),然而我的操作未能实现,不清楚具体症结所在,若有人明白情况,请留言说明。

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

计数通过:适用于重复操作里,假如停顿点处在重复操作内,能够设定这个数值,重复操作多少遍后会在停顿点暂停,往后的重复操作都将停留在停顿点。

异常情况发生时,若预先设置了特殊暂停点,程序运行到那个位置就会立刻停下。出现意外状况时,系统会直接找到出问题的那一行代码。

参照图6.6,按下加号键来增加Java,接着设置异常的暂停点。输入意图暂停的异常类型,参照图6.7,接着在Java部分能够查到设置的异常暂停点。

我在此处设置了一个特殊停顿点,参见图6.8,一旦程序遭遇空指针错误,便会自动锁定在发生空指针错误的那个语句行。

七、多线程调试

通常情况下我们调试时是在一个线程里执行的,按部就班地执行指令。然而有时候在调试过程中,会发现想要发起另一个请求却变得不可能了。

那是因为IDEA在Debug模式下,系统会全面冻结其它线程,只有调试线程执行完毕,其它线程才会继续运行。可以在界面中找到相应设置,如图7.1所示,接着通过点击确认,将其设定为永久选项。

转换至另一条线程,于图7.2的选单框中,能够更换现行线程,譬如我这边设有两个调试线程,若切换至次一个,即可调入另一条调试线程。

八、回退断点

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

先了解下这个调用堆栈,如图8.1,先看请求进入的那个方法,再是调用方法,其余暂时不关注,最顶上的方法是当前断点位置的方法。

2、断点回退

回退操作指的是返回到最近一次函数调用的起始位置,进行测试时,不能逐行向后移动或回到先前的停顿点,而是直接回到前一个函数执行的地方。

撤销操作存在两种途径intellij idea图标,其一借助Drop Frame按钮(参见图8.2),它支持按调用顺序逐级撤销,此方式也涵盖了对第三方类库中其它方法的撤回,比如,当关闭Show All按钮时,第三方类库的方法便会重新显现,具体情况请参照图8.3。

第二种方法,在栈帧列表中挑选需要撤销的操作,使用鼠标右键点击执行弹出菜单中的移除栈帧选项,如图8.4所示,这样程序会返回到上一个函数调用的位置,接着按下F9键,程序便会到达预设的暂停点。

不过有个地方要留意,中断后重新执行只能再次经历一遍程序,先前某些变量或信息的情形已经无法复原,比如实例、数组、或者数据库里修改过的记录等。

九、中断Debug

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

偶尔,当发现输入的值不正确时,我们希望停止后续操作,那么如何终止当前操作呢(因为接下来的步骤会删除数据库信息……),难道必须关闭服务并重启系统?是的,我过去也是这么做的。

确实,我也没找到能够立刻停止请求的方法,除非关闭服务,不过借助强制返回,也就是Force,可以防止后续步骤,参照图9.1。

按下强制键,会弹出来一个数值选择框,这个方案的输出形式是映射表,因此,可以直接输出,以此迫使程序不再继续执行后续步骤,也可以选择新建一个实例。

你点的每个在看,我都认真当成了喜欢

如有侵权请联系删除!

13262879759

微信二维码