在IntellijIDEA中使⽤Debug(图⽂教程)
⽬录
⼀、Debug开篇
⼆、基本⽤法&快捷键
三、变量查看
四、计算表达式
五、智能步⼊
六、断点条件设置
七、多线程调试
⼋、回退断点
九、中断Debug
⼗、附:JRebel激活
Debug⽤来追踪代码的运⾏流程,通常在程序运⾏过程中出现异常,启⽤Debug模式可以分析定位异常发⽣的位置,以及在运⾏过程中参数的变化。通常我们也可以启⽤Debug模式来跟踪代码的运⾏流程去学习三⽅框架的源码。
所以学习下如何在Intellij IDEA中使⽤好Debug,主要包括如下内容:
⼀、Debug开篇
⾸先看下IDEA中Debug模式下的界⾯。
如下是在IDEA中启动Debug模式,进⼊断点后的界⾯,我这⾥是Windows,可能和Mac的图标等会有些不⼀样。就简单说下图中标注的8个地⽅:
①以Debug模式启动服务,左边的⼀个按钮则是以Run模式启动。在开发中,我⼀般会直接启动Debug模式,⽅便随时调试代码。
idea debug②断点:在左边⾏号栏单击左键,或者快捷键Ctrl+F8 打上/取消断点,断点⾏的颜⾊可⾃⼰去设置。
③ Debug窗⼝:访问请求到达第⼀个断点后,会⾃动激活Debug窗⼝。如果没有⾃动激活,可以去设置⾥设置,如图1.2。
④调试按钮:⼀共有8个按钮,调试的主要功能就对应着这⼏个按钮,⿏标悬停在按钮上可以查看对应的快捷键。在菜单栏Run⾥可以到同样的对应的功能,如图1.4。
⑤服务按钮:可以在这⾥关闭/启动服务,设置断点等。
⑥⽅法调⽤栈:这⾥显⽰了该线程调试所经过的所有⽅法,勾选右上⾓的[Show All Frames]按钮,就不会显⽰其它类库的⽅法了,否则这⾥会有⼀⼤堆的⽅法。
⑦ Variables:在变量区可以查看当前断点之前的当前⽅法内的变量。
⑧ Watches:查看变量,可以将Variables区中的变量拖到Watches中查看
[图1.1]
[图1.2]:在设置⾥勾选Show debug window on breakpoint,则请求进⼊到断点后⾃动激活Debug窗⼝
[图1.3]:如果你的IDEA底部没有显⽰⼯具栏或状态栏,可以在View⾥打开,显⽰出⼯具栏会⽅便我们使⽤。可以⾃⼰去尝试下这四个选项。
[图1.4]:在菜单栏Run⾥有调试对应的功能,同时可以查看对应的快捷键。
⼆、基本⽤法&快捷键
Debug调试的功能主要对应着图⼀中4和5两组按钮:
1、⾸先说第⼀组按钮,共8个按钮,从左到右依次如下:
[图2.1]
> Show Execution Point (Alt + F10):如果你的光标在其它⾏或其它页⾯,点击这个按钮可跳转到当前代码执⾏的⾏。
> Step Over (F8):步过,⼀⾏⼀⾏地往下⾛,如果这⼀⾏上有⽅法不会进⼊⽅法。
> Step Into (F7):步⼊,如果当前⾏有⽅法,可以进⼊⽅法内部,⼀般⽤于进⼊⾃定义⽅法内,不会进⼊官⽅类库的⽅法,如第25⾏的put⽅法。
> Force Step Into (Alt + Shift + F7):强制步⼊,能进⼊任何⽅法,查看底层源码的时候可以⽤这个进
⼊官⽅类库的⽅法。
> Step Out (Shift + F8):步出,从步⼊的⽅法内退出到⽅法调⽤处,此时⽅法已执⾏完毕,只是还没有完成赋值。
> Drop Frame (默认⽆):回退断点,后⾯章节详细说明。
> Run to Cursor (Alt + F9):运⾏到光标处,你可以将光标定位到你需要查看的那⼀⾏,然后使⽤这个功能,代码会运⾏⾄光标⾏,⽽不需要打断点。> Evaluate Expression (Alt + F8):计算表达式,后⾯章节详细说明。
2、第⼆组按钮,共7个按钮,从上到下依次如下:
[图2.2]
> Rerun 'xxxx':重新运⾏程序,会关闭服务后重新启动程序。
> Update 'tech' application (Ctrl + F5):更新程序,⼀般在你的代码有改动后可执⾏这个功能。⽽这个功能对应的操作则是在服务配置⾥,如图2.3。
> Resume Program (F9):恢复程序,⽐如,你在第20⾏和25⾏有两个断点,当前运⾏⾄第20⾏,按F9,则运⾏到下⼀个断点(即第25⾏),再按F9,则运⾏完整个流程,因为后⾯已经没有断点了。
> Pause Program:暂停程序,启⽤Debug。⽬前没发现具体⽤法。
> Stop 'xxx' (Ctrl + F2):连续按两下,关闭程序。有时候你会发现关闭服务再启动时,报端⼝被占⽤,这是因为没完全关闭服务的原因,你就需要查杀所有JVM进程了。
> View Breakpoints (Ctrl + Shift + F8):查看所有断点,后⾯章节会涉及到。
> Mute Breakpoints:哑的断点,选择这个后,所有断点变为灰⾊,断点失效,按F9则可以直接运⾏完程序。再次点击,断点变为红⾊,有效。如果只想使某⼀个断点失效,可以在断点上右键取消Enabled,如图2.4,则该⾏断点失效。
[图2.3]:更新程序,On 'Update' actions,执⾏更新操作时所做的事情,⼀般选择'Update classes and resources',即更新类和资源⽂件。
 ⼀般配合热部署插件会更好⽤,如JRebel,这样就不⽤每次更改代码后还要去重新启动服务。如何激活JRebel,在最后章节附上。
 下⾯的On frame deactivation,在IDEA窗⼝失去焦点时触发,即⼀般你从idea切换到浏览器的时候,idea会⾃动帮你做的事情,⼀般可以设置Do nothing,频繁切换会⽐较消耗资源的。
[图2.4]
三、变量查看
在Debug过程中,跟踪查看变量的变化是⾮常必要的,这⾥就简单说下IDEA中可以查看变量的⼏个地⽅,相信⼤部分⼈都了解。
1、如下,在IDEA中,参数所在⾏后⾯会显⽰当前变量的值。
[图3.1] 2、光标悬停到参数上,显⽰当前变量信息。点击打开详情如图3.3。我⼀般会使⽤这种⽅式,快捷⽅便。
[图3.2]
[图3.3]
3、在Variables⾥查看,这⾥显⽰当前⽅法⾥的所有变量。
[图3.4]
4、在Watches⾥,点击New Watch,输⼊需要查看的变量。或者可以从Variables⾥拖到Watche⾥查看。
[图3.5]

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。