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

诚信、勤奋、创新、卓越

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

13262879759

工作日:9:00-22:00

学好Debug调试程序提升效率,在Intellij IDEA中这样用

发布时间:2025-08-12

浏览次数:0

点击上方"IT牧场",选择"设为星标"

技术干货每日送达!

作者 | 

来源 | http://www..com/

前言

程序员必须掌握发现并解决错误的本领。精通调试技巧能显著提高工作效率。熟练掌握排错方法,即使面对大量错误也能从容应对。排错工具用于监测代码执行过程,当程序运行时发生意外情况,开启排错功能有助于找出问题源头,同时也能了解运行期间参数的变动情况。我们通常也能开启调试功能来观察程序执行过程,以便研究外部库的内部实现。

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

一、DeBug开篇

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

以调试形态开启服务,左侧的那个按键是以执行形态开启的。在编写程序时,我通常直接开启调试形态,这样便于随时检查代码。

设置中断点时,可在左侧行号处点击鼠标左键,或者运用快捷键Ctrl+F8,以此实现断点的添加或移除,中断点所在行的颜色可以根据个人需求进行定制。

调试窗口:当请求抵达首个断点时,会自行开启调试窗口,若未自动开启,可前往设定里调整,参照图1.2。

调试控件包含八个分项,各项具备独立操作效用,鼠标移至控件上方能够辨识其专属热键,菜单条目运行选项下设有等效功能模块,具体形态展示于图1.4

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

方法调用序列:这个区域列出了该线程在调试过程中涉及的全部函数,选中界面右上角的

Show All

若不点击那个键,就不会列出其他集合里的函数了,否则此处将充斥着无数个函数。

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

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

若在选项中选定开启调试显示,当连接到中断点时,调试界面会随即打开。

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

在菜单栏Run里有调试对应的功能。

二、基本用法&快捷键

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

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

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

升级软件,在开始升级过程时,通常要处理两方面,首先替换升级模块,其次补充相关资料。

使用热部署插件往往更加便捷,例如,它允许代码更新后无需重启服务即可生效,具体启用方法将在最后一部分介绍。

该On frame模块,当在IDEA界面中失去注意力时启动,通常发生在用户从IDEA切换到浏览器操作时,系统会自动执行相关任务,这类操作频繁进行时,会对系统资源造成较大负担,用户可以根据需要选择是否启用此功能。

三、变量查看

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

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

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

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

在那处,选定创建新监测,键入要观察的目标数据。又或者,能够将数据源拽到监测界面来进行分析。

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

四、计算表达式

参照图4.1的按钮,运用快捷键Alt加F8,能够实现调试时对特定公式的求值,无需借助输出信息的方式。

按下Alt加F8键,或者点击相应按钮,又或者,选中某个公式后同时按下Alt加F8键,都会打开计算公式的界面,就像下面这个样子,输入完成后回车,或者点击计算公式的结果。

这个式子不单能够是一般变量或参数,还可能是某个函数,倘若你的单行代码里运用了多个函数,便能够借助此法来探知特定函数的输出结果。

IntelliJ IDEA Debug技巧_IntelliJ IDEA Debug教程_intellij idea 怎么使用

建立变量,在处理公式的地方,能够调整变量的数值,有时这样便可以很便捷地测试各种数值状况。

五、智能步入

考虑,一段指令中包含多个函数,如何仅挑选某个函数执行,先前曾指出借助逐步深入(Alt + F7)或强制逐步深入(Alt + Shift + F7)进入函数内部,但这两个操作会依照函数调用次序逐一进入,颇为不便。

那么智能步入操作就很便捷了,智能步入这个选项在Run菜单里可以找到,Smart Step Into (Shift + F7),参见图5.1

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

若仅存在一种途径,便即刻开始,诸如强制单步调试。

六、断点条件设置

在设定暂停条件后,当条件达成,程序会在该点停止,若条件未满足,则程序会继续执行。

一般来讲,若要检查一个规模较大的数据集或列表,在程序运行过程中,如果需要在某个环节暂停执行,难道会逐个去查看每个变量的具体状态吗?这样做未免太过繁琐,而且极有可能遗漏某些需要重新审视的情况。

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

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

Java 界面列出了全部暂停点,在右侧进行勾选,并设定暂停点的触发条件。

选中记录日志选项,那么当前暂停的行内容就会显示在界面终端,参照图6.3所示

选中记录功能,运行该指令时,会进行公式运算,然后把值在屏幕上显示出来。

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

尝试通过实例编号进行筛选,参考图6.5中的编号格式,不过操作未能实现,不清楚具体问题所在,若有明白情况的人请留言说明。

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

计数通过:在重复操作里应用,假如暂停点位于重复段内,能够设定这个数值,经过若干遍数后会在暂停点停止,随后的重复都会在暂停点中断。

设置异常捕获点,当程序运行中遇到需要阻止的情况,会立刻找到问题所在的代码行。

参照图6.6,按下加号键,载入Java,并设置异常暂停点。接着,键入意图暂停的异常类型,如图6.7所示,随即可在Java部分查到设置的异常暂停点。

我在此处设置了一个错误捕捉点,如图6.8所示,一旦程序遭遇空指针错误,便会自动停留在该错误发生的代码行。

七、多线程调试

通常情况下我们调试时是在单线程内执行的,按部就班地执行指令。然而偶尔会出现这种情况,在调试过程中,想要启动另一个请求却遭遇停滞。

那是因为IDEA在Debug状态下通常采用全部阻塞模式,这样会暂停其它线程的执行,必须等到当前调试的线程执行完毕之后其它线程才会继续运行。可以在视图界面里找到相应设置,如图7.1所示,接着点击创建按钮,将其设定为常规应用选项。

转换至另一条执行路径,于图7.2所呈现的选单栏位中,能够更替正在运作的执行路径,例如当前存在两个用于调试的执行路径,若选择不同的路径,即可进入对应的调试执行路径。

八、回退断点

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

先了解下这个调用序列,如图8.1,先来看请求进入的那段代码,接着是执行中的那段代码,其余部分暂时不讨论,最顶端的那段代码就是当前暂停的位置所在的方法。

2、断点回退

回退操作指的是返回到前一个函数调用的起始位置,测试时无法逐行撤销或回到之前的断点,而是直接回到上一个函数。

回退途径存在两种,其一为Drop Frame按键(参见图8.2),它借助逐次调用的方式实现回退,同时涵盖三方类库中的其它操作(当关闭Show All按键时intellij idea 怎么使用,三方类库的操作便会出现,如图8.3所示)。

第二种方法,在调用堆栈界面挑选需要撤销的操作,点击右键执行丢弃帧命令,如图8.4所示,即可返回到上一个函数调用的位置,接着按下F9键,程序会自动跳转到对应函数的暂停点。

不过有个事项要留意,中断后重新执行仅能再次经历一遍过程,先前部分变量/信息的情形已经无法复原到过去的样貌,例如实体、群组、或是修改过的数据库记录等。

九、中断Debug

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

有时候,当发现输入的参数不正确时,我们希望立即停止后续操作,那么如何终止当前请求呢(因为接下来的步骤会删除数据库信息等),难道只能通过关闭服务并重启程序来解决这个问题吗,我过去也是这么处理的。

确切地说,我也没找到能立刻终止请求的途径,(除了彻底关闭服务),但借助强制返回,也就是Force,可以防止后续步骤,如图9.1。

按下强制键,会弹出一个关于数值的界面,我当前这个办法的结果类型是映射,因此,我直接给出这个结果,以此强迫系统不再继续执行后面的步骤,也可以选择新建一个实例。

如有侵权请联系删除!

13262879759

微信二维码