IDEA中如何使⽤debug调试项⽬⼀步⼀步详细教程
⽬录
在现在的开发中,我们经常采⽤Debug来追踪代码的运⾏流程,通常在程序运⾏过程中出现异常,启⽤Debug模式可以分析定位异常发⽣的位置,以及在运⾏过程中参数的变化。通常我们也可以启⽤Debug模式来跟踪代码的运⾏流程去学习三⽅框架的源码。
⼀、Debug开篇
  ⾸先看下IDEA中Debug模式下的界⾯。
  如下是在IDEA中启动Debug模式,进⼊断点后的界⾯,我这⾥是,可能和Mac的图标等会有些不⼀样。就简单说下图中标注的8个地⽅:
  ① 以Debug模式启动服务,左边的⼀个按钮则是以Run模式启动。在开发中,我⼀般会直接启动Debug模式,⽅便随时调试代码。
  ② 断点:在左边⾏号栏单击左键,或者快捷键Ctrl+F8 打上/取消断点,断点⾏的颜⾊可⾃⼰去设置。
  ③ Debug窗⼝:访问请求到达第⼀个断点后,会⾃动激活Debug窗⼝。如果没有⾃动激活,可以去设置⾥设置,如图1.2。
  ④ 调试按钮:⼀共有8个按钮,调试的主要功能就对应着这⼏个按钮,⿏标悬停在按钮上可以查看对应的快捷键。在菜单栏Run⾥可以到同样的对应的功能,如图1.4。
  ⑤ 服务按钮:可以在这⾥关闭/启动服务,设置断点等。
  ⑥ ⽅法调⽤栈:这⾥显⽰了该线程调试所经过的所有⽅法,勾选右上⾓的[Show All Frames]按钮,就不会显⽰其它类库的⽅法了,否则这⾥会有⼀⼤堆的⽅法。
  ⑦ Variables:在变量区可以查看当前断点之前的当前⽅法内的变量。
最新版idea安装详细教程
  ⑧ Watches:查看变量,可以将Variables区中的变量拖到Watches中查看
  [图1.1]
  [图1.2]:在设置⾥勾选Show debug window on breakpoint,则请求进⼊到断点后⾃动激活Debug窗⼝
选项。
  [图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]

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