发布时间: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
按下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。
按下强制键,会弹出来一个数值选择框,这个方案的输出形式是映射表,因此,可以直接输出,以此迫使程序不再继续执行后续步骤,也可以选择新建一个实例。
你点的每个在看,我都认真当成了喜欢
如有侵权请联系删除!
Copyright © 2023 江苏优软数字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服务提供商
13262879759
微信二维码